, , , .
( , ).
,
Type1 obj1 = new Type1();
Type type = typeof(Type1);
Type2 obj2 = (type)obj1;
, .
.
public class TypeValue
{
public Type Type { get; private set; }
public object Value { get; set; }
public T GetValueAs<T>()
{
if (Value == null)
return default(T);
return (T)Value;
}
}
TypeValue a = new TypeValue();
a.Value = 1;
int b = a.GetValueAs<int>();
public class TypeValue<T>
{
public Type Type { get { return typeof(T); } }
public T Value { get; set; }
}
TypeValue<int> a = new TypeValue<int>();
a.Value = 1;
int b = a.Value;
Type c = a.Type;