考虑以下代码
class ProductDefinition {}
A:
class Product { public ProductDefinition Definition {get;set}}
B:
class Product { public ProductDefinition ProductDefinition {get;set}}
(B)在使用此属性(例如
)时会导致轻微的冗余product.ProductDefinition.Price
VS
product.Definition.Price
然而,它似乎是程序员习惯看到的东西。
是否有关于此主题的进一步阐述?
答案 0 :(得分:1)
如果您的班级名为ProductDefinition
,则为您的媒体资源Product
命名是完全没有意义的。名为Definition
的属性当然是Product
(还有什么?)的定义,因此ProductDefinition
将是冗余的。并没有像它的类型那样命名这个项目的做法。 C#允许这样做,但它没有强制要求。
线......
product.Definition.Price
... 100%清晰,没有任何裁员。这是产品定义的价格。
答案 1 :(得分:1)
我更喜欢使用Definition
。
因为将来您可能希望为您的班级添加另一个定义,然后您的财产命名可能会有不一致,因为您会有一个FooDefinition
和一个FooDefinition
。我认为最好有BarDefinition
和var hobby = (prompt("Podaj swoje hobby: "));
if (hobby === null){
alert("Dlaczego nie podałeś swojego hobby?");
document.write("Moje hobby to: ");
}else{
document.write(hobby);
}
。
答案 2 :(得分:1)
我会选择Microsoft recommended guidelines
✓ CONSIDER 为属性提供与其类型相同的名称。例如, 以下属性正确获取并设置名为的枚举值 颜色,因此属性名为Color:
public enum Color {...} public class Control { public Color Color { get {...} set {...} } }
因此,在这种情况下,我会将其构造为:
class ProductDefinition {}
class Product { public ProductDefinition ProductDefinition { get; set; } }
Product
对象另一个定义。例如(ProductOwnerDefinition
):class ProductDefinition { } class ProductOwnerDefinition { } class Product { public ProductDefinition ProductDefinition { get; set; } public ProductOwnerDefinition ProductOwnerDefinition { get; set; } }
此处Definition
的使用可能会导致混淆。因此,最好将Property命名为类型的名称。