C#:“无法明确调用运算符或访问者”

时间:2017-07-04 06:17:23

标签: c#

我知道有很多关于此错误的问题,但我已经尝试了他们建议的所有内容,但没有任何效果。

首先,我是C#的新手,这就是为什么我找不到自己的解决方案的原因:(

我的问题:我有这段代码(如果我总结一下)

public class ClassA {
  private static int numA;

  public static void MainProcess() {
    numA = ClassB.get_numB(); 
    ...
  }
}

public ClassB {
  private static int numB { get; set; }
  ...
}

现在,它收到错误'numB.get' cannot explicitly call operator or accessor。我已经看到我们应该写numA = ClassB.numB代替,但这次我收到了错误:The property or indexer 'ClassB.numB' cannot be used in this context because the get accessor is inaccessible'ClassB.numB' is inaccessible due to its protection level

所以,我尝试过的唯一有效的方法是更改​​public static int numB中的numB,但我真的不喜欢它不是私有变量......所以,有没有解决方案?< / p>

谢谢!

1 个答案:

答案 0 :(得分:1)

您可以将其作为私人或公共变量。如果您想访问它,请将其公开!

实际上,如果你只是想让getter公开但是setter是私有的,你可以这样做:

public static int numB { get; private set; }

或者你可以只读它:

public static readonly int numB;

然后你可以在构造函数中设置它的值,它的值永远不会改变。