gpt4 book ai didi

c# - 为什么 C# 不允许显式调用运算符或属性访问器?

转载 作者:太空宇宙 更新时间:2023-11-03 14:07:55 26 4
gpt4 key购买 nike

<分区>

C# 规范可能是这样说的,但即使在我的搜索中没有出现任何内容,这也不是我正在寻找的答案。

我正在寻找表明直接调用运算符方法(如 op_Addition )或属性访问器(如 get_Length )可能不是一个好主意的场景。 C# 语言的设计者阻止我们这样做已经够糟了。(参见 compiler error CS0571。)

一个相当常见的情况下,拥有此能力会很有用,其中 Func<T>委托(delegate)应该返回一个属性的值。您也不能使 get 访问器成为委托(delegate)的方法。有一个简单的解决方法(使用 () => someObject.SomeProperty ),但是,即使不考虑开销,它也不像 someObject.get_SomeProperty 那样清晰。 .

我看到的一个复杂问题是,当一个类型定义到不同类型的多个转换时,这些方法将具有相同的签名但返回类型不同,而 C# 也不允许这样做。但那是一个 different question .

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