Tag: 方法签名

委托任何方法类型 – C#

我想要一个将执行任何外部方法的类,如下所示: class CrazyClass { //other stuff public AnyReturnType Execute(AnyKindOfMethod Method, object[] ParametersForMethod) { //more stuff return Method(ParametersForMethod) //or something like that } } 这可能吗? 是否有代理人采用任何方法签名?

方法签名的定义?

方法签名(或方法的签名)的正确定义是什么? 在谷歌上,我发现了各种定义: 它是方法名称和参数列表的组合 这是否意味着method signature = method name + argument list ? 然后我看不出“ 方法 ”和“ 方法签名 ”之间的区别。 如果我有一个方法: public void Foo(int x, int y) { … } 我的方法签名会是以下之一,还是两者都不是? 富 Foo(int,int) Foo(int x,int y) Foo(34,78) 如果有人问我该方法的方法签名是什么,我该怎么回答?

为什么即使返回类型不同,也不能使用相同的签名声明两个方法?

重复 : 函数重载按返回类型? 也许这是一个非常愚蠢的问题,但我不明白为什么我不能声明两个具有相同签名的方法,当它们具有不同的返回类型时。 public class MyClass { private double d = 0; public double MyMethod() { return d; } public string MyMethod() { return d.ToString(); } } 我收到一个编译错误,指出该类已经定义了具有相同参数类型的成员。 (显然我在我的代码中使用它的方式并不像我的示例代码那么简单……但我认为它可以解决这个问题。) 我是否遗漏了有关OO设计的内容,这使得我正在尝试进行OOP反模式? 当然,编译器应该能够确定我尝试使用哪种方法,只要我具体告诉它我想要哪一种方法。 给定MyClass myClass = new MyClass(); 我希望以下代码可以工作: double d = myClass.MyMethod(); string s = myClass.MyMethod(); 我希望以下代码有问题: var v = myClass.MyMethod(); 但即使在var的情况下,它也会导致编译错误。 谁能看到我在这里做错了什么? 我很乐意得到纠正。 🙂