新手请教C#中关于静态函数和静态变量

class A
{
class b
{
public static int countCreate;
}
class c
{
private int i=b.countCreate
}

}
现在要把类B中的publicn改为private
书上说就不能访问了。必须加在类B中加一个静态方法取countCreate 的值
private int getCountCreate()
{return countCreate;}
说这样在类C中就可以调用了,可是为什么同样为private为什么静态变量就不可以调用,静态方法就可以调用。。

求解。知道的高手帮助下下新人

1.现在要把类B中的publicn改为private书上说就不能访问了。
首先你要明白 private 是私有的意思,就是说除了自己谁都不能用,那么怎么才能那到 是私有的值呢? 一般我们会写属性 或 方法来拿,别人拿不到,自己可以拿到,然后这个方法里面调用这个值, 一个public的方法
比如 你说用方法取值:
private static _num;
public static int GetNum(){
return _num;
}
公共的方法 它自己的内部是可以拿值;

2.必须加在类B中加一个静态方法取countCreate 的值
我上面的方法也加static(静态的),有一个原则,静态的值只能用静态的来调用,所以我们必须这么做。

以后不懂可以问我,可以加我百度好友,直接留言,我星期1-5 是上班的。可以帮助你!
温馨提示:答案为网友推荐,仅供参考
第1个回答  2009-11-18
哪本书说private 方法可以被其它类访问??
劝你还是把那本书撕了吧 !!

private 和 static的区别在于
staic只管何时加载不管访问权限的事
private 只管访问权限不管加载的事

所以不管这个方法是不是静态的只要它有private就不能被其它类访问
属性也是一样
第2个回答  2009-11-18
静态方法你如果改成private也是访问不到的,建议你看看public、private、protected等修饰符的含义跟他的适用范围
第3个回答  2009-11-18
静态方法自己是public 的
第4个回答  2020-03-29
1.定义i的时候定义成static的,然后在下面用语句class1.i调用
2.在下面getnum中定义一个class1的实例,比如a
public
static
int
getnum()
{
class1
a
=new
class1();//给类分配空间
i也就有的空间地址了
return
a.i
=
2;
}
用语句a.i调用
在c#中,static类型的成员相当于其他语言的全局变量、全局常量、全局函数等。在c#中它属于类本身,类中的任何其他成员都可以使用,在生成类时就给它非配了存储空间,所以使用时直接“类名.成员名”即可。
而非static类型的成员就一定得属于一个类的实例,只有生成实例后才在实例中生成这些非static类型的成员,访问时用“实例名.成员名”的格式。
相似回答