我正在尝试使用具有相同名称的字段和方法。

class Foo {
    String Bar;
    String Bar() { return "woo"; }
}


Error 8 Ambiguity between 'Foo.Bar' and 'Foo.Bar()'

我可以不使用Bar()扩展方法来执行此操作吗?例如,这有效

class Foo {
    String Bar;
}

public class Woo {
    public static String Bar(this Foo) { return "woo"; }
}

最佳答案

你不能您也许可以像以前一样找到解决方法,但是要以the C# spec explicitly forbids this的面值看待:


  方法的名称必须与同一类中声明的所有其他非方法的名称不同。此外,方法的签名必须与同一类中声明的所有其他方法的签名不同。

关于c# - 我该如何解决这种歧义?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/7883335/

10-17 01:46