gpt4 book ai didi

c# - 将成员与其字符串名称链接起来的最可靠方法是什么?

转载 作者:可可西里 更新时间:2023-11-01 07:47:28 26 4
gpt4 key购买 nike

.NET 框架的各个部分都需要使用属性的字符串名称:

  • ArgumentException 使用违规变量的名称
  • DependencyProperty 使用它支持的属性的名称
  • INotifyPropertyChanged 使用刚刚更改的属性的名称。

填充这些参数的最简单方法似乎是对它们进行硬编码(即:new ArgumentNullException("myArg"))。这似乎过于脆弱,直到运行时您才会意识到您的重构打破了关联。

使用反射来验证这些参数是我突然想到的唯一解决方案,但说验证直到只在运行时执行。

是否有更好的方法来定义成员与其名称之间的关系?将优先考虑简单但优雅的设计时实现。

最佳答案

您可以使用表达式语句来链接名称。

throw new SomeException<MyType>(x => x.myArg)

表达式跟在 Expression<Func<TSource, TValue>> 之后.然后,重构和实际上没有改变表达式的东西。然后您的异常会解析表达式并从属性中提取名称。

关于c# - 将成员与其字符串名称链接起来的最可靠方法是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5888785/

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