我知道有很多关于此错误的问题,但我已经尝试了他们建议的所有内容,但没有任何效果。
首先,我是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>
谢谢!
答案 0 :(得分:1)
您可以将其作为私人或公共变量。如果您想访问它,请将其公开!
实际上,如果你只是想让getter公开但是setter是私有的,你可以这样做:
public static int numB { get; private set; }
或者你可以只读它:
public static readonly int numB;
然后你可以在构造函数中设置它的值,它的值永远不会改变。