예제 #1
0
 public static WellKnownType?TryGetWellKnownType(this ITypeSymbol symbol)
 {
     return(symbol.SpecialType switch {
         SpecialType.System_String => WellKnownType.System_String,
         SpecialType.System_Nullable_T => WellKnownType.System_Nullable_T,
         SpecialType.System_Array => WellKnownType.System_Array,
         SpecialType.System_Object => WellKnownType.System_Object,
         _ => WellKnownTypeExtensions.GetWellKnownType(symbol.ContainingNamespace?.GetDisplayName() ?? "", symbol.MetadataName)
     });
예제 #2
0
 public static WellKnownType?TryGetWellKnownType(this TypeReference tr)
 {
     return(tr.MetadataType switch {
         MetadataType.String => WellKnownType.System_String,
         MetadataType.Object => WellKnownType.System_Object,
         MetadataType.Void => WellKnownType.System_Void,
         // TypeReferences of System.Array do not have a MetadataType of MetadataType.Array -- use string checking instead
         MetadataType.Array or _ => WellKnownTypeExtensions.GetWellKnownType(tr.Namespace, tr.Name)
     });