c# – 访问匿名类型变量

前端之家收集整理的这篇文章主要介绍了c# – 访问匿名类型变量前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我有这个代码
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

它会编译,但它会在运行时崩溃.

猜你在找的C#相关文章