gpt4 book ai didi

c# - C# 方法的完全限定名称是什么?

转载 作者:行者123 更新时间:2023-11-30 21:25:56 24 4
gpt4 key购买 nike

在任何类中,我如何显式引用我类的某个方法?

例如,这段代码有效:

class Test : IEnumerable<T> {
public IEnumerator<T> GetEnumerator() { return null; }
IEnumerator IEnumerable.GetEnumerator() { return GetEnumerator(); }
}

但是这个没有!

class Test : IEnumerable<T> {
IEnumerator<T> IEnumerable<T>.GetEnumerator() { return null; }
IEnumerator IEnumerable.GetEnumerator() { return GetEnumerator(); } // error
}

如何引用我的方法的通用版本?在 Java 中,我会简单地在它前面加上接口(interface)名称,但这在 C# 中似乎不起作用。除了 ((IEnumerable<T>)this).GetEnumerator() 之外,还有其他办法吗? ?

编辑: 我对“为什么”它不能以这种方式工作不感兴趣。我只是在寻找一种方法来做到这一点。谢谢。

最佳答案

如果使用显式接口(interface)实现,则需要通过该接口(interface)访问该方法。

所以不,除了你在文本中提出的之外别无他法。

在这种情况下,您通常不会对通用接口(interface)使用显式实现。

编辑:如果文档警告是您关注的根源,让我给您一个更好的建议:GhostDoc .

如果您安装它,并将其绑定(bind)到,比如说,Shift+Ctrl+D(默认),那么它会尝试理解您的方法的名称并添加必要的文档。这不是好的部分,因为您应该始终自己编辑这部分,但是如果您从基类或您的情况下继承接口(interface)的方法和属性,它将自动复制文档。有时您需要对其进行编辑以使其更适合您的类型,但通常您可以保留它。

它还会对典型模式进行特殊检测。

试试吧,我相信你会喜欢的。

关于c# - C# 方法的完全限定名称是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/384318/

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