簡體   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