-8

我试图在另一个类的非静态构造函数中访问普通类(ClassA.StaticPropertyXX)的静态属性。ClassA 是普通类。

它工作正常。我需要知道它是否正确。请告诉我。

4

3 回答 3

0

没有什么能阻止你这样做。您将在这些类之间建立耦合。对 ClassA 的更改可能会影响(甚至破坏)其他类。所以如果可以的话,你应该避免它。

于 2012-05-30T09:20:22.987 回答
0

您可能会遇到的情况:

  • 您没有using命名空间的声明,因此ClassA不可用。这可以通过添加using语句或指定完整的命名空间来解决。
  • 该名称ClassA与另一个名称冲突。这可以通过在using语句中为命名空间创建别名来解决。
  • 静态属性不是public

只要您有权访问该ClassA类型,就可以访问其中的公共静态属性。

于 2012-05-30T09:21:50.297 回答
0

代替:

class MyClass
{
    private int _value;

    public MyClass()
    {
        _value = OtherClass.StaticInt;
    }
}

赞成:

class MyClass
{
    private int _value;

    public MyClass(int valueForConstruction)
    {
        _value = valueForConstruction;
    }
}

与解耦MyClassOtherClass即使您这样做:

MyClass c = new MyClass(OtherClass.StaticInt);
于 2012-05-30T09:22:37.740 回答