我正在尝试访问我 class 的私人词汇 . 但我不明白与其他成员相比,让它运作所需的差异;
如果这样做:
private double dblDbl = 2;
//misc code
public double getDblDbl{ get{ return dblDbl; } }
为什么我不能用enum做呢?
private enum myEnum{ Alpha, Beta};
//misc code
public Enum getMyEnum{ get{ return myEnum; } }
//throws "Window1.myEnum" is a "type" but is used like a variable
3 回答
你在这里有两件非常不同的事情 .
在第一个示例中,您将定义公共类型的私有字段 . 然后,您将通过公共方法返回已公开类型的实例 . 这是有效的,因为类型本身已经公开 .
在第二个示例中,您将定义一个私有类型,然后通过公共属性返回一个实例 . 类型本身是私有的,因此不能公开暴露 .
第二种情况的更相同的例子如下
在第一个示例中,您声明了一个double类型的字段,然后声明一个访问它的属性 . 在第二个示例中,声明一个枚举类型,然后尝试返回属性中的类型 . 您需要声明枚举类型,然后声明使用它的字段:
枚举类型也需要公开,因为使用它的属性是公共的 .
枚举需要是公共的,因此其他类型可以引用它 - 您希望存储对该枚举的实例的私有引用: