我正在設計名爲ScriptLib
的名稱空間。在ScriptLib
內部,我有一個基類Script
與幾個派生類,包括但不限於SPoint
和SWhiteSpace
和獨立類ScanGrid
。命名問題與類中的枚舉
namespace ScriptLib
{
public enum ScriptType { Point, WhiteSpace }
public enum BoundaryPointMode { FourPoints, TwoPoints }
public enum GridSizingMode { EqualInterval, EqualQuantity }
public class Script
{
public ScriptType ScriptType { get; set; }
//other properties and methods etc.
}
public class ScanGrid
{
public BoundaryPointMode BoundaryPointMode { get; set; }
public GridSizingMode GridSizingMode { get; set; }
//other properties and methods etc.
}
public sealed class SPoint : Script
{
public new ScriptType ScriptType => ScriptType.SPoint;
//other properties and methods etc.
}
public sealed class SWhiteSpace : Script
{
public new ScriptType ScriptType => ScriptType.WhiteSpace;
//other properties and methods etc.
}
//more classes derive from Script and all use ScriptType
}
Script
及其所有派生類使用ScriptType
,並且ScanGrid
使用另外兩個枚舉。
目前我把它們放在命名空間中,但在類之外。但是,我覺得我這樣污染了命名空間,因爲枚舉並沒有被所有類使用。請注意,我只開始在這個命名空間上工作;更多的類和枚舉將會出現。
但是,如果我將ScriptType
放在Script
類中,而另外兩個放在ScanGrid
中,則會導致命名問題。我想保留屬性的名稱,所以我需要爲枚舉提供新名稱。我是否將它們命名爲:ScriptTypeType
,BoundaryPointModeType
和GridSizingModeType
?對我來說,他們不僅讀得不好,而且看起來太長,尤其是ScanGrid
。成像下面的代碼:
scanGrid.GridSizingMode = _equalInterval.Checked ?
ScanGrid.GridSizingModeType.EqualInterval:
ScanGrid.GridSizingModeType.EqualQuantity
它是常見的,直接把枚舉,即使他們不在同一個命名空間中使用的所有類的命名空間下?
是否有一種很好的方法來命名枚舉並引用它們,如果我將它們放在類中?
您可以(並且在我看來:應該)爲每個枚舉和類創建不同的文件以保持其清潔。這樣它就不會看起來'污染'了。你仍然可以將它們全部放在同一個命名空間中。 – Fortega
這是來自你的域的一個概念,讓它在一個適當的命名空間中不會「污染」它。正如你已經注意到自己這是一個基於意見的問題,因此投票結束。 – BartoszKP
@BartoszKP不知道基於意見的帖子是不允許在這裏。我可能也誤解了「污染」某些東西的意思。 – Anthony