gpt4 book ai didi

reflection - DLR 和反射

转载 作者:行者123 更新时间:2023-12-03 12:34:44 26 4
gpt4 key购买 nike

我到处都读到 .net 4 中的新 DLR,他们说它的一个很好的用途是反射,并且总是显示的代码片段类似于

dynamic d = GetSomeObject();
d.DoSomething();
d.SomeMember = 1;

GetSomeObject() 是什么样子的?我找不到任何地方可以解释这一点。

我知道它可以是任何东西,但是在反射的上下文中它是什么?是大会吗?一个类型的实例?

最佳答案

GetSomeObject() 的返回类型将是某种类型的实例。例如,它可能是这样的:

public Customer GetSomeObject() {
return new Customer("John", "Doe", 12345);
}

然后代码会说:

dynamic customer = GetSomeObject();
string s = customer.FirstName;
// now the "s" variable would have "John" in it

GetSomeObject() 可以返回任何东西。它可能会返回一个客户对象或一个产品。而且没关系!这个想法是,当变量被声明为 dynamic 时,当您调用方法或属性时,如您所示,编译器将生成使用反射来尝试调用方法或属性的代码.如果它们存在,则调用将成功。否则,您将在运行时遇到错误。

在一般情况下,此示例只是通过让编译器为您生成代码来简化反射的使用。

话虽如此,如果 Customer 或 Product 对象自己实现 IDynamicObject,那么它们就可以做更高级的事情。

关于reflection - DLR 和反射,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1982344/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com