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 из строки, может привести к неоткрытым ошибкам аргумента типа.