gpt4 book ai didi

c# - 如何获得属性(property)的 setter/getter ?

转载 作者:太空狗 更新时间:2023-10-30 00:12:39 24 4
gpt4 key购买 nike

我想获得一个属性的 getter,这样我就可以传递给需要 Func 的方法。现在,我将 getter 提取到 Get 方法中,并在需要 getter 函数时使用此方法。

关于背景的几句话:我有一个带有属性的类 A,我有另一个类 T,它跟踪来自 A(以及来自类 B、C 等)的一些属性。保持跟踪在这里意味着当 T 的对象被询问有关跟踪属性的当前值时,它应该给出这样的值。

一种方法可能是更改通知机制,但 A 类不知道跟踪或不跟踪什么——因此这是一种非常错误的方法。您必须重写所有可能 被跟踪的类。此外,必须始终发送通知,即使根本不会向跟踪器询问值。

简单地传递一个方法如何读取值(属性的 getter )似乎更方便,跟踪器将在需要时使用它。没有开销,非常简单。

最佳答案

编译代码,还是反射?作为代表,您可以使用:

Func<Foo, int> func = x => x.SomeValue;

或跟踪特定对象:

Func<int> funct = () => someObj.SomeValue;

通过反射,您需要 GetGetMethod()Delegate.CreateDelegate()

关于c# - 如何获得属性(property)的 setter/getter ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3315782/

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