我有很多对象,每个对象都有关于其类型的字符串信息。
像:
string stringObjectType = "DateTime";
跑步时,我自己没有对象。
所以我无法测试它typeof (object)
如何在运行对象类型时通过以下方式获取:
typeof (stringObjectType)
try
{
// Get the type of a specified class.
Type myType1 = Type.GetType("System.DateTime");
Console.WriteLine("The full name is {myType1.FullName}.");
// Since NoneSuch does not exist in this assembly, GetType throws a TypeLoadException.
Type myType2 = Type.GetType("NoneSuch", true);
Console.WriteLine("The full name is {myType2.FullName}.");
}
catch(TypeLoadException e)
{
Console.WriteLine(e.Message);
}
catch(Exception e)
{
Console.WriteLine(e.Message);
}
您可以使用Type.GetType()
从其字符串名称中获取类型。所以你可以这样做:
Type DateType = Type.GetType("System.DateTime");
您不能只使用“DateTime”,因为这不是类型的名称。如果您这样做并且名称错误(它不存在),那么它将引发异常。所以你需要尝试/解决这个问题。
您可以通过执行以下操作获得任何给定对象的正确类型名称:
string TypeName = SomeObject.GetType().FullName;
如果您需要使用模糊或不完整的名称,那么您将在反思中玩得开心。不是不可能,但肯定很痛苦。