我试图在另一个类的非静态构造函数中访问普通类(ClassA.StaticPropertyXX)的静态属性。ClassA 是普通类。
它工作正常。我需要知道它是否正确。请告诉我。
没有什么能阻止你这样做。您将在这些类之间建立耦合。对 ClassA 的更改可能会影响(甚至破坏)其他类。所以如果可以的话,你应该避免它。
您可能会遇到的情况:
using
命名空间的声明,因此ClassA
不可用。这可以通过添加using
语句或指定完整的命名空间来解决。ClassA
与另一个名称冲突。这可以通过在using
语句中为命名空间创建别名来解决。public
。只要您有权访问该ClassA
类型,就可以访问其中的公共静态属性。
代替:
class MyClass
{
private int _value;
public MyClass()
{
_value = OtherClass.StaticInt;
}
}
赞成:
class MyClass
{
private int _value;
public MyClass(int valueForConstruction)
{
_value = valueForConstruction;
}
}
与解耦MyClass
,OtherClass
即使您这样做:
MyClass c = new MyClass(OtherClass.StaticInt);