C#在函数重载时提供以下
signature characteristics.
我们知道,重载只考虑参数;它们的数量和类型,但多态性的目标是根据调用策略提供相同的名称但不同的用法.
如果我有一个包含两个具有相同名称和签名的方法的类,而一个是静态而另一个不是,则C#编译器会抛出错误; “类已经定义了一个名为’foo’的成员,它具有相同的参数类型”.对这两种方法的调用将会有所不同;一个具有对象名称,另一个具有类名称.因此,呼叫策略没有歧义.那为什么会抛出错误?
class Example { public void foo() { } public static void foo() { } } class Program { static void Main(string[] args) { Example e = new Example(); e.foo(); } }
解决方法
原文地址:https://www.jb51.cc/csharp/98430.html
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。