簡體   English   中英

具有相似名稱的另一個類的屬性的名稱約定

[英]Name convention for properties that are another class with a similar name

我敢肯定這已經被問過了,但是我很難找到任何相關的答案-可能是因為我所用術語的一般性質。

我有一堂課-我們稱之為Foo 現在,給定的Foo具有定義其性質的各種屬性。 為了便於討論,我們稱它們為NameInactiveNotes 也可能有很多Foo ,每個變體都是FooType ,因為缺少更好的詞。

因此,我們具有以下類定義:

public class FooType
{
    public byte Id { get; set; }
    public string Name { get; set; }
    public bool Inactive { get; set; }
    public string Notes { get; set; }
}

public class Foo
{
    public Guid Id { get; set; }
    public FooType TypeOfFoo { get; set; }
    public string Name { get; set; }
    public bool Inactive { get; set; }
    public string Notes { get; set; }
}

我知道這不是理想的情況。 遺憾的是, FooType上的“ Inactive和“ Notes字段是必須的,因此我不能隨意使用enum 那么,我的困惑是,我很難為TypeofFooFooType確定一個合理的描述性名稱。 稱它們為TypeofFooFooType很丑陋,將來容易引起混淆,因此我正在尋找替代方案。

有什么命名約定可以涵蓋這一點嗎?

不,沒有命名約定。 實際上,.NET Framework本身並不會避免使用與其類型名稱相同的屬性,甚至在一些較舊的准則中建議使用該屬性:

SolidBrush.Color

Control.Font

這不是一個萬無一失的解決方案,並且在某些極端情況下(如調用靜態成員)可能會引起混亂 ,但是還不錯,有理由明確避免使用它。

我將嘗試使用FooType Foo子類,並使用帶有枚舉FooType的工廠來創建對象。 您的子類應重寫常規方法以添加特定的行為。 但是我認為上下文對於選擇正確的模式很重要。 在我看來,僅使用特殊的命名是令人困惑的,並不代表您打算上課。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM