Поделиться через


CodeTypeReference.BaseType Свойство

Определение

Получает или задает имя типа, на который происходит ссылка.

public:
 property System::String ^ BaseType { System::String ^ get(); void set(System::String ^ value); };
public string BaseType { get; set; }
member this.BaseType : string with get, set
Public Property BaseType As String

Значение свойства

Имя типа, на который дается ссылка.

Комментарии

Это свойство содержит имя типа, если он не является типом массива. В этом случае это тип элемента массива.

Примечание

Имя свойства может вводить в заблуждение. Это свойство содержит только имя типа с удаленными декоративными элементами массива или аргументами универсального типа, а не базовый или родительский тип, как можно ожидать. Например, значение для BaseTypeSystem.Collections.Generic.Dictionary`2[[System.String], [System.Collections.Generic.List`1[[System.Int32]]]] равно System.Collections.Generic.Dictionary`2.

Представление универсальных типов

Сведения в этом разделе предназначены для разработчиков поставщиков CodeDom и относятся только к CLS-совместимым языкам. Возвращаемое значение может содержать универсальные типы. Универсальные типы форматируются с именем типа, за которым следует серьезный акцент (""), за которым следует количество аргументов универсального типа. Аргументы универсального типа можно найти в объекте , CodeTypeReferenceCollection возвращаемом свойством TypeArguments . Значения, возвращаемые параметром BaseType и , TypeArguments содержат то же содержимое, что и значение типа, возвращаемого отражением.

Например, сконструированный Dictionary<TKey,TValue> объект , где K является строкой, а V является сконструированным List<T> из целых чисел, представлен отражением следующим образом (с удалением сведений о сборке):

System.Collections.Generic.Dictionary`2[[System.String], [System.Collections.Generic.List`1[[System.Int32]]]]  

Рекурсивный анализ BaseType свойства из для CodeTypeReferenceDictionary<TKey,TValue> возвращает те же строки, что и в приведенном выше представлении отражения:

  • Свойство BaseType родительского объекта CodeTypeReference возвращает следующее:

    System.Collections.Generic.Dictionary`2  
    
  • Свойство BaseType для первого CodeTypeReference объекта в TypeArguments коллекции возвращает следующее:

    System.String  
    
  • Свойство BaseType для второго CodeTypeReference объекта в TypeArguments коллекции возвращает следующее:

    System.Collections.Generic.List`1  
    
  • Свойство TypeArguments в объекте CodeTypeReference для System.Collections.Generic.List`1 возвращает следующее:

    System.Int32  
    

Число аргументов типа следует использовать при анализе связанных TypeArguments значений. Распространенной практикой является удаление счетчика аргументов типа из созданного кода, но практика зависит от компилятора. Важно отметить, что число аргументов типа можно найти в имени вложенного типа. В этом случае за ним следует знак "плюс" ("+").

Примечание

При создании универсального CodeTypeReferenceрекомендуется указать аргументы типа в качестве CodeTypeReference объектов или использовать конструктор, принимаюющий Type. Использование конструктора, создающего CodeTypeReference из строки, может привести к неоткрытым ошибкам аргумента типа.

Применяется к