微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

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

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

原文地址:https://www.jb51.cc/csharp/238994.html

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐