gpt4 book ai didi

c# - 反射和属性使用的资源

转载 作者:行者123 更新时间:2023-11-30 15:49:31 25 4
gpt4 key购买 nike

是否有任何好的资源可以深入解释属性和反射及其许多用途?

我对最佳实践特别感兴趣,即何时使用属性和反射来解决特定的计算问题是有用或合适的。

最佳答案

我不知道一个好的综合资源。以我的经验,最好的学习方法是遇到一个没有它就无法解决的情况(至少不容易)。因此,如果您知道反射和属性使事情变得更容易的基本情况,您就会知道何时需要开始学习它们。

反射(reflection):如果没有它就无法做你需要做的事情。

我知道这听起来有点刻薄,但确实如此 - 如果您需要编写一些代码,但没有办法弄清楚您正在处理的对象的类型,反射(reflection)是适当的。当您需要潜入并使用不受您控制的对象的私有(private)/ protected /内部成员时,它也适用。

属性:适用于需要添加有关类型的额外信息的情况。

示例:我有一堆 IConverter 类。每一个都对应于我们内容管理系统中的一个特定字段。我如何用描述它所用字段的额外信息来装饰这个类?

  • 我可以为每个转换器创建不同的接口(interface),即使它们都做同样的事情,但这似乎是个坏主意。
  • 我可以放置一个只读属性,该属性将硬编码字符串返回到每个类的字段名称,但是我必须为每个类创建一个实例来检查属性值。

如果我能在类本身上添加一些额外的信息,说明它用于哪个领域,那就太好了。然后我可以检查我所有的类型并找到我想要的类型,然后实例化那个类型。属性让我这样做:

[HandlesField("FieldName")]
public class FooFieldConverter : IConverter

关于c# - 反射和属性使用的资源,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1487836/

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