命名属性和类型存在问题。例子:
public class A
{
public class B { ... }
public B B; // << error
}
问题1:为什么会出错?
我可以这样解决
public class A
{
public B B;
}
public class B { ... } // move it outside
或者像这样
public class A
{
public class B { ... }
public B BB; // rename property
}
甚至
public class A
{
public class BB { ... } // rename type
public BB B;
}
问题2:你会怎么做?
将类型声明移到外面是有风险的,因为可能有几个类在语义上需要相同的类型名称 -> 冲突 -> 某些类类型的奇怪名称或必须将类放在命名空间中。
重命名它..棘手。例如,重命名Shape
类型,必须为几个绘制图形的类声明:FigureLine
、FigurePoint
等。我可以称它们为ShapeLine
,ShapePoint
等等。或者我可以将类型重命名Shape
为
public class FigureLine
{
public enum LineShape {Straight, Bend, Whatever};
public LineShape Shape {get; private set;}
}
但是现在如果我尝试使用它,那么它就变成FigureLine.LineShape
了——双线并不好。
重命名属性...如何?