我有这个代码:
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 举报,一经查实,本站将立刻删除。