C#中有一种方法可以基于字符串转换对象吗?基于字符串的动态转换
例,
String typeToCast = control.GetType().Name;
Button b = (typeToCast)control;
C#中有一种方法可以基于字符串转换对象吗?基于字符串的动态转换
例,
String typeToCast = control.GetType().Name;
Button b = (typeToCast)control;
不,你不能这样做。此外,你会实现,因为你必须把它分配给“静态”,在您的情况,它的按钮 - 那为什么不投它通常为:
Button b = (Button)control;
您可以hovewer,检查你的控制一类:
Type t = TypeFromString(name);
bool isInstanceOf = t.IsInstanceOfType(control);
编辑: ,而不必键入它在编译的时候,你可以使用Activator类创建一个对象:
object obj = Activator.CreateInstance(TypeFromString(name));
Button button = (Button)obj; //Cast to compile-time known type.
那么,你应该问问你是否可以创建一个对象,它是类型的名称 - 是的,你可以。 –
当然可以,但你不应该。
Csharp的
string value = "2.5";
object typedObject;
typedObject = Convert.ChangeType(value, Type.GetType("System.Double"));
Vbnet
Dim value As String = "2.5"
Dim typedObject As Object
typedObject = Convert.ChangeType(value, Type.GetType("System.Double"))
说实话,那样铸件就没有意义。你没有理由这样做。 – waqasahmed
我有一个指定类型的文件来创建。我可以硬编码检查并创建这些对象,但我正在寻找更优雅的方式。 –