访问静态成员的静态成员

时间:2017-04-11 14:33:33

标签: c# static

考虑以下课程

class A
{
public static int i;
}

class B
{
public static A a{get;}=new A();  // without new A(), B.A will be null
}

现在,

B.a 给出了A的新实例,因为变量" i" A类是静态的,我无法访问" i"通过 B.a ,即B.a.i是编译时错误。

我明白如果我喜欢下面的话,

class B
{
  static class A
  {
    static int i;
   }
}

然后我可以做B.A.i。

所以我的问题是如何访问类的静态成员的静态成员?它是否可能,是否可以使用任何其他模式。

还要注意制作课程" A"作为静态和有类" B"如

class B
{
public static A a{get;}
}

给出编译时错误" 静态类型不能用作返回类型"。

3 个答案:

答案 0 :(得分:1)

由于iA的静态成员,因此您可以像

一样直接访问它
class B
{
  public static A a {get;} = new A();  
  public int ii{get;} = A.i; 
}  

答案 1 :(得分:0)

  

如何访问类的静态成员的静态成员?

如果某个东西是某个类的成员 - 静态或非静态 - 这意味着它是某个值的实例的值或引用。因此,如果您知道您有一个类的实例,但该类本身具有静态成员,那么只需静态访问这些成员:

<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div class="container">
    <nav>
      <ul>
        <li><a href="#section1" id="nav-item-1" class="nav-item active">section1</a></li>
        <li><a href="#section2" id="nav-item-2" class="nav-item">section2</a></li>
        <li><a href="#section3" id="nav-item-3" class="nav-item">section3</a></li>
        <li><a href="#section4" id="nav-item-4" class="nav-item">section4</a></li>
      </ul>
    </nav>
  </div>


  <section id="section1" class="section">Section 1</section>
  <section id="section2" class="section">Section 2</section>
  <section id="section3" class="section">Section 3</section>
  <section id="section4" class="section">Section 4</section>

答案 2 :(得分:0)

您不需要实例化一个类来访问它的静态成员。 您只需尝试:

int value = A.i;

如果需要,您也可以添加静态类:

public static class A
{
public static int i;
}

您可以在代码中的任何位置使用,例如:

int value = A.i;