我正在寻找 c# 中的机制是这样的:
Car car1;
Car car2;
Car car = (Car)SomeMechanism.Get("car1");
car1 和 car2 是字段
所以我想得到一些带有反射的对象,而不是类型:/我怎样才能在 c# 中做到这一点?
我正在寻找 c# 中的机制是这样的:
Car car1;
Car car2;
Car car = (Car)SomeMechanism.Get("car1");
car1 和 car2 是字段
所以我想得到一些带有反射的对象,而不是类型:/我怎样才能在 c# 中做到这一点?
局部变量是不可能的,但如果你有一个字段,你可以做
class Foo{
public Car car1;
public Car car2;
}
你可以做
object fooInstance = ...;
Car car1 = (Car)fooInstance.GetType().GetField("car1").GetValue(fooInstance);
看起来您正在尝试通过反射访问局部变量。这是不可能的。局部变量不能通过反射访问。
我是否正确假设您有两个变量并且您想要动态地获取一个或另一个?我不相信你可以用反射来做到这一点(至少不容易),但你可以很容易地用函数做到这一点。
// Declaration
class SomeMechanism
{
public static T Get<T>(Func<T> getter);
}
// Usage
Car car1;
Car car2;
Car car = SomeMechanism.Get(() => car1);