考虑以下课程
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;}
}
给出编译时错误" 静态类型不能用作返回类型"。
答案 0 :(得分:1)
由于i
是A
的静态成员,因此您可以像
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;