INameCreationService.CreateName(IContainer, Type) 方法
定義
重要
部分資訊涉及發行前產品,在發行之前可能會有大幅修改。 Microsoft 對此處提供的資訊,不做任何明確或隱含的瑕疵擔保。
建立在指定容器中所有元件的唯一新名稱。
public:
System::String ^ CreateName(System::ComponentModel::IContainer ^ container, Type ^ dataType);
public string CreateName (System.ComponentModel.IContainer container, Type dataType);
public string CreateName (System.ComponentModel.IContainer? container, Type dataType);
abstract member CreateName : System.ComponentModel.IContainer * Type -> string
Public Function CreateName (container As IContainer, dataType As Type) As String
參數
- container
- IContainer
加入新物件的所在容器。
- dataType
- Type
接收名稱的物件資料型別。
傳回
資料型別的唯一名稱。
範例
下列程式代碼範例提供範例 INameCreationService.CreateName 方法實作。 方法可以根據指定之類型的名稱建立名稱,該名稱對指定容器內的元件名稱是唯一的。
// Creates an identifier for a particular data type that does not conflict
// with the identifiers of any components in the specified collection.
virtual String^ CreateName( System::ComponentModel::IContainer^ container, System::Type^ dataType )
{
// Create a basic type name string.
String^ baseName = dataType->Name;
int uniqueID = 1;
bool unique = false;
// Continue to increment uniqueID numeral until a
// unique ID is located.
while ( !unique )
{
unique = true;
// Check each component in the container for a matching
// base type name and unique ID.
for ( int i = 0; i < container->Components->Count; i++ )
{
// Check component name for match with unique ID string.
if ( container->Components[ i ]->Site->Name->StartsWith( String::Concat( baseName, uniqueID ) ) )
{
// If a match is encountered, set flag to recycle
// collection, increment ID numeral, and restart.
unique = false;
uniqueID++;
break;
}
}
}
return String::Concat( baseName, uniqueID );
}
// Creates an identifier for a particular data type that does not conflict
// with the identifiers of any components in the specified collection.
public string CreateName(System.ComponentModel.IContainer container, System.Type dataType)
{
// Create a basic type name string.
string baseName = dataType.Name;
int uniqueID = 1;
bool unique = false;
// Continue to increment uniqueID numeral until a
// unique ID is located.
while( !unique )
{
unique = true;
// Check each component in the container for a matching
// base type name and unique ID.
for(int i=0; i<container.Components.Count; i++)
{
// Check component name for match with unique ID string.
if( container.Components[i].Site.Name.StartsWith(baseName+uniqueID.ToString()) )
{
// If a match is encountered, set flag to recycle
// collection, increment ID numeral, and restart.
unique = false;
uniqueID++;
break;
}
}
}
return baseName+uniqueID.ToString();
}
' Creates an identifier for a particular data type that does not conflict
' with the identifiers of any components in the specified collection
Public Function CreateName(ByVal container As System.ComponentModel.IContainer, ByVal dataType As System.Type) As String Implements INameCreationService.CreateName
' Create a basic type name string
Dim baseName As String = dataType.Name
Dim uniqueID As Integer = 1
Dim unique As Boolean = False
' Continue to increment uniqueID numeral until a unique ID is located.
While Not unique
unique = True
' Check each component in the container for a matching
' base type name and unique ID.
Dim i As Integer
For i = 0 To container.Components.Count - 1
' Check component name for match with unique ID string.
If container.Components(i).Site.Name.StartsWith((baseName + uniqueID.ToString())) Then
' If a match is encountered, set flag to recycle
' collection, increment ID numeral, and restart.
unique = False
uniqueID += 1
Exit For
End If
Next i
End While
Return baseName + uniqueID.ToString()
End Function
備註
這個方法會傳回指定容器內唯一之新物件的名稱。
給實施者的注意事項
此類型的服務通常會實作,以從數據類型的名稱建立唯一的物件名稱,通常會附加數位,以允許名稱成為唯一標識符。 例如, ListBox1
針對 ListBox
物件。