23 if ( t == expected )
return true;
25 }
while ( t !=
null && t != typeof(
object ) );
48 var runtimeType = type.GetType();
49 if ( type == runtimeType )
51 return typeof( Type ).AssemblyQualifiedName;
54 StringBuilder sb =
new StringBuilder( type.AssemblyQualifiedName );
57 if ( !type.IsConstructedGenericType )
return sb.ToString();
58 Type[] genargs = type.GenericTypeArguments;
60 if ( !type.ContainsGenericParameters )
return sb.ToString();
61 Type[] genargs = type.GetGenericArguments();
66 for (
int i = 0; i < genargs.Length; i++ )
72 sb[sb.Length - 1] =
'>';
81 public static Type
Parse(
string typeStr )
83 int genOpen = typeStr.IndexOf(
'<' );
84 int genClose = typeStr.IndexOf(
'>' );
86 if ( genOpen < 0 && genClose < 0 )
return Type.GetType( typeStr );
87 if ( genOpen >= 0 && genClose < 0 )
throw new ArgumentException(
"Unterminated < in type string: " + typeStr );
88 if ( genOpen < 0 && genClose >= 0 )
throw new ArgumentException(
"Unexpected > in type string: " + typeStr );
90 Type parsedType = Type.GetType( typeStr.Substring( 0, genOpen ) );
91 string[] genargStrings = typeStr.Substring( genOpen + 1, genClose - genOpen - 1 ).Split(
',' );
92 Type[] genargs =
new Type[genargStrings.Length];
94 for (
int i = 0; i < genargStrings.Length; i++ )
Avustava luokka tietotyyppien käsittelyyn
static bool InheritsFrom(Type actual, Type expected)
Periytyykö luokka toisesta
static string ToString(Type type)
Tyypin nimi merkkijonona
static Type Parse(string typeStr)
Parsii tyypin annetysta merkkijonosta