繁体   English   中英

如何实现此公共可访问枚举

[英]How do I implement this public accesible enum

我正在尝试访问我班级的私人词汇。 但我不明白与其他成员相比,让它运作所需的差异;

如果这样做:

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

你在这里有两件非常不同的事情。

在第一个示例中,您将定义公共类型的私有字段。 然后,您将通过公共方法返回已公开类型的实例。 这是有效的,因为类型本身已经公开。

在第二个示例中,您定义了一个私有类型,然后通过公共属性返回一个实例。 类型本身是私有的,因此不能公开暴露。

第二种情况的更相同的例子如下

public enum MyEnum { Alpha, Beta }
// ... 
private MyEnum _value;
public MyEnum GetMyEnum { get { return _value; } }

枚举需要是公共的,因此其他类型可以引用它 - 您希望存储对该枚举的实例的私有引用

public enum myEnum { Alpha, Beta }

public class Foo
{
    private myEnum yourEnum = myEnum.Alpha;
    public myEnum getMyEnum
    { 
        get { return yourEnum; } 
    }
}

在第一个示例中,您声明了一个double类型的字段,然后声明一个访问它的属性。 在第二个示例中,声明一个枚举类型,然后尝试返回属性中的类型。 您需要声明枚举类型,然后声明一个使用它的字段:

public enum MyEnum{ Alpha, Beta};

private MyEnum myEnum = MyEnum.Alpha;

//misc code

public Enum getMyEnum{ get{ return myEnum; } }

枚举类型也需要公开,因为使用它的属性是公共的。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM