繁体   English   中英

如何在C#中为嵌套的私有枚举创建属性

[英]How can I create a property in C# for a nested private enum

如何在类中为嵌套的私有枚举创建公共属性? 我希望也可以在本课程之外使用该枚举,但并非在我以外的所有地方都使用它。

我也想知道这样做是对的还是应该使用其他约定,例如在相同名称空间下编写枚举,但是我将允许该名称空间中所有类的全局使用该枚举,而不是好。

为了更清楚一点:枚举包含不同类型的燃料,这就是为什么我不希望电动汽车知道此枚举以及其他可能会意外使用该枚举并置于同一个命名空间下的类。

你做不到 编译器将抱怨可访问性不一致。 方法如何返回没人知道的东西? enum设为publicinternal ,否则没人可以使用它。

将枚举指定为内部枚举,这样它将对程序集中的所有类可见,但不适用于其他程序集中的对象。 像这样:

internal enum MyVals
{
    val1,
    val2,
}

显而易见的警告是,您必须确保将业务逻辑拆分为单独的程序集,而不仅仅是命名空间。

在我看来,您的设计是错误的。 我不确定您的课程,但也许下面的设计可能会对您有所帮助。 它也很容易阅读并且很有意义。

public class BaseCar
{
  //Basic functions for other cars to use
  void Drive();
  void Stop();
}

public class GasCar : BaseCar
{
  // Enum is specific to a car with gas
  public Enum FuelType ....
}

public class ElectricCar : BaseCar
{
  //No gas FueType Enum for electric car...
}

暂无
暂无

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

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