INameCreationService.CreateName(IContainer, Type) Methode

Definitie

Hiermee maakt u een nieuwe naam die uniek is voor alle onderdelen in de opgegeven container.

public:
 System::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

Parameters

container
IContainer

De container waar het nieuwe object wordt toegevoegd.

dataType
Type

Het gegevenstype van het object dat de naam ontvangt.

Retouren

Een unieke naam voor het gegevenstype.

Voorbeelden

Het volgende codevoorbeeld bevat een voorbeeldmethode-implementatie INameCreationService.CreateName . De methode kan een naam maken op basis van de naam van een opgegeven type dat uniek is voor de namen van de onderdelen in de opgegeven container.

// 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

Opmerkingen

Met deze methode wordt een naam geretourneerd voor het nieuwe object dat uniek is binnen de opgegeven container.

Notities voor uitvoerders

Dit type service wordt vaak geïmplementeerd om een unieke objectnaam te maken op basis van de naam van het gegevenstype, vaak toegevoegd met een getal waarmee de naam een unieke id kan zijn. Bijvoorbeeld ListBox1 voor een ListBox object.

Van toepassing op