using System;
class App
{
static int i;
private static void Main()
{
App t = new App();
t.test();
Console.ReadKey();
}
private void test()
{
i = 10;
Console.WriteLine(i);
}
}
在上面的代码变量i是静态变量。test是实例方法。在这个实例方法里面为什么能访问静态变量?
17 个解决方案
#1
为什么不呢?
#2
如果是public的静态成员,任何程序都能调用
本类的实例可以调用任何本类的静态成员,无论是public、protected、internal和private的。
静态成员在整个程序进程中只保留一份,其生存期是全局的。
本类的实例可以调用任何本类的静态成员,无论是public、protected、internal和private的。
静态成员在整个程序进程中只保留一份,其生存期是全局的。
#3
因为是在本类吧
你试试在别的类实例化它,看看能不能调用!
你试试在别的类实例化它,看看能不能调用!
#4
因为都在一个类里面
你把static去掉后,一样可以调用
你把static去掉后,一样可以调用
#5
为什么不呢
基础问题
如果是public的静态成员,任何程序都能调用
本类的实例可以调用任何本类的静态成员,无论是public、protected、internal和private的。
静态成员在整个程序进程中只保留一份,其生存期是全局的。
基础问题
如果是public的静态成员,任何程序都能调用
本类的实例可以调用任何本类的静态成员,无论是public、protected、internal和private的。
静态成员在整个程序进程中只保留一份,其生存期是全局的。
#6
必须能,不能就扯了
#7
实例方法访问静态变量那是自然的,但是静态方法就不能访问实例变量,你的Main方法中之所以可以访问到test方法是因为你的 App t = new App();这句话已经实例化了以个对象,及你的实例成员变量已经在内存中存在了,这时静态方法当然也就能够访问了!
#8
你记错了吧,是静态方法不能访问实例字段。
静态字段是大家都可以访问的
静态字段是大家都可以访问的
#9
可以的
#10
public static 声明的方法或者变量 是类级的,只要一个类的实例没有被释放,那么任何其他类都可以通过
类.方法名(或变量名)直接引用
类.方法名(或变量名)直接引用
#11
反过来不能
#12
为什么不能访问啊楼主?
你都是在同一个类里面 你这个实例变量的修饰方式在怎么样都能访问。 建议楼主看下类的成员变量。
基础知识啊
你都是在同一个类里面 你这个实例变量的修饰方式在怎么样都能访问。 建议楼主看下类的成员变量。
基础知识啊
#13
你的i是公共的静态变量,本类的方法当然可以调用
#14
可以的
#15
在同一个类里可以啊
#16
恩。明白了。谢谢大家。我知道是基础问题。只是我的书上面说的。静态变量只能被类访问不能被实例方法访问。。
#17
不会吧,静态变量和对象就是让其他访问的啊,不然设为私有成员就好
#1
为什么不呢?
#2
如果是public的静态成员,任何程序都能调用
本类的实例可以调用任何本类的静态成员,无论是public、protected、internal和private的。
静态成员在整个程序进程中只保留一份,其生存期是全局的。
本类的实例可以调用任何本类的静态成员,无论是public、protected、internal和private的。
静态成员在整个程序进程中只保留一份,其生存期是全局的。
#3
因为是在本类吧
你试试在别的类实例化它,看看能不能调用!
你试试在别的类实例化它,看看能不能调用!
#4
因为都在一个类里面
你把static去掉后,一样可以调用
你把static去掉后,一样可以调用
#5
为什么不呢
基础问题
如果是public的静态成员,任何程序都能调用
本类的实例可以调用任何本类的静态成员,无论是public、protected、internal和private的。
静态成员在整个程序进程中只保留一份,其生存期是全局的。
基础问题
如果是public的静态成员,任何程序都能调用
本类的实例可以调用任何本类的静态成员,无论是public、protected、internal和private的。
静态成员在整个程序进程中只保留一份,其生存期是全局的。
#6
必须能,不能就扯了
#7
实例方法访问静态变量那是自然的,但是静态方法就不能访问实例变量,你的Main方法中之所以可以访问到test方法是因为你的 App t = new App();这句话已经实例化了以个对象,及你的实例成员变量已经在内存中存在了,这时静态方法当然也就能够访问了!
#8
你记错了吧,是静态方法不能访问实例字段。
静态字段是大家都可以访问的
静态字段是大家都可以访问的
#9
可以的
#10
public static 声明的方法或者变量 是类级的,只要一个类的实例没有被释放,那么任何其他类都可以通过
类.方法名(或变量名)直接引用
类.方法名(或变量名)直接引用
#11
反过来不能
#12
为什么不能访问啊楼主?
你都是在同一个类里面 你这个实例变量的修饰方式在怎么样都能访问。 建议楼主看下类的成员变量。
基础知识啊
你都是在同一个类里面 你这个实例变量的修饰方式在怎么样都能访问。 建议楼主看下类的成员变量。
基础知识啊
#13
你的i是公共的静态变量,本类的方法当然可以调用
#14
可以的
#15
在同一个类里可以啊
#16
恩。明白了。谢谢大家。我知道是基础问题。只是我的书上面说的。静态变量只能被类访问不能被实例方法访问。。
#17
不会吧,静态变量和对象就是让其他访问的啊,不然设为私有成员就好