我有这个代码:
object test = new {a = "3",b = "4"}; Console.WriteLine(test); //I put a breakpoint here
如何访问测试对象的属性?当我放一个断点时,visual studio可以看到这个对象的变量……为什么我不能?我真的需要访问这些.
解决方法
如果您不能为匿名类使用静态类型,则可以使用dynamic,如下所示:
static object MakeAnonymous() { return new {a = "3",b = "4"}; } static void Main(string[] args) { dynamic test = MakeAnonymous(); Console.WriteLine("{0} {1}",test.a,test.b); }
这种方法的缺点是编译器不会帮助您在未定义属性时检测情况.例如,你可以写这个
Console.WriteLine("{0} {1}",test.abc,test.xyz); // <<== Runtime error
它会编译,但它会在运行时崩溃.