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

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了新手请教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 是上班的。可以帮助你!
参考技术A 哪本书说private 方法可以被其它类访问??
劝你还是把那本书撕了吧 !!

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

所以不管这个方法是不是静态的只要它有private就不能被其它类访问
属性也是一样
参考技术B 静态方法你如果改成private也是访问不到的,建议你看看public、private、protected等修饰符的含义跟他的适用范围 参考技术C 静态方法自己是public 的 参考技术D 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类型的成员,访问时用“实例名.成员名”的格式。

请教一下C#中父类静态构造函数在子类中为啥不会和子类的静态构造函数一起执行

请教一下C#中父类静态构造函数在子类中为什么不会和子类的静态构造函数一起执行。

如果子类有自己的构造函数,那么父类的构造函数就不会运行了。当子类没有构造函数时才会调用父类的构造函数来构造对象。 参考技术A 你应该去看一下继承这一块的东西 参考技术B 推荐你看一段视屏教程http://www.enet.com.cn/eschool/video/c/

以上是关于新手请教C#中关于静态函数和静态变量的主要内容,如果未能解决你的问题,请参考以下文章

c++中关于私有静态变量的问题

java中关于对象初始化的问题

java中关于静态变量的问题

请教一个 c# 在静态类里定义个全局对象

C# 静态成员和方法的学习小结

C#类的初始化顺序