public class WebForm3 : System.Web.UI.Page
{
static WebForm3 x=new WebForm3();
public int a=1;
public int b=x.a;
......
......
}
编译的时候能通过,但是运行的时候在b=x.a那里提示System.NullReferenceException: 未将对象引用设置到对象的实例。什么原因?会这样????
但是如果换成:
{
public int a=1;
public int b=a;
......
......
}
连编译都通不过,因为我们知道在未生成这个类的实例,a是还没有初始化的,所以不能被引用。
{
static WebForm3 x=new WebForm3();
public int a=1;
public int b=x.a;
......
......
}
编译的时候能通过,但是运行的时候在b=x.a那里提示System.NullReferenceException: 未将对象引用设置到对象的实例。什么原因?会这样????
但是如果换成:
{
public int a=1;
public int b=a;
......
......
}
连编译都通不过,因为我们知道在未生成这个类的实例,a是还没有初始化的,所以不能被引用。
解决方案 »
- asp.net中引用excel问题
- ASPNET生成的HTML怎么压缩(高分求皳)
- 关于Request.QueryString和文件上传乱码问题
- htmlfile无法访问,请问高手怎么解决啊!
- 服务器端服务停止了,ajax 定时器 会在客户端不停弹出错误信息,该如何处理?高手给分析分析
- DropdownList的事件触发SelectedIndexChanged返回服务端强制SelectedIndex=1???!!
- 有关htmlanchor的怪问题?
- 怎么将获取到的Bind("name")传到要连接的页面?
- 在网页上如何打印定制格式的票据?
- asp.net上传文件的问题,关于文档管理和病毒防治!
- 请教一个用asp.net弹出确认窗口的问题?一直无法解决
- 疑问:把图片以字节流形式存放在SQL SERVER 中,改如何读取?
{
static WebForm3 x = new WebForm3();
public static int a = 1;
public int b=x.a;
......
......
}
public int b = this.a;
这是不能被编译的,因为是用对象成员去初始化成员。你要干什么,你如下定义就没什么问题
public static int a=1;
public int b = a;
static WebForm3 x=new WebForm3();
x 是静态的对象,只能访问静态对象的静态变量
static WebForm3 x=new WebForm3();
public int a=1;
public int b=x.a;//这样写是不行的
//在声明的时候 可以构造与常量赋值 象头两句
//变量赋值 必须写到构造或方法中
//public int b;
//在构造中写 b=x.a;//这样就OK了
public static int a=1;
public int b = a;
这样当然可以,静态变量加载类时就初始化了,后面就可以引用了
但是用:
static WebForm3 x = new WebForm3();
public int a = 1;
public int b=x.a;
x也已经初始花了,也应当包括这个类里的属性分配空间。但会报错???
TO:zhjg136(天星)
x是个静态对象,但是属于类的对象,怎么能去调用类里的静态变量???
x没有被分配空间??