using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;namespace _110628Ckaoshi
{ class Program
{
static int i = getNum();
int j = getNum();
static int num = 1;
static int getNum()
{ return num; }
[STAThread] static void Main(string [] args)
{
Console.WriteLine(string.Format("i={0}",i));
Console.WriteLine(string.Format("j={0}",new Program().j));
Console.Read();
}
}
}
有这样的代码;
结果是:i=0
j=1;
我想请教一下,为什么i会得”0“呢?
using System.Collections.Generic;
using System.Linq;
using System.Text;namespace _110628Ckaoshi
{ class Program
{
static int i = getNum();
int j = getNum();
static int num = 1;
static int getNum()
{ return num; }
[STAThread] static void Main(string [] args)
{
Console.WriteLine(string.Format("i={0}",i));
Console.WriteLine(string.Format("j={0}",new Program().j));
Console.Read();
}
}
}
有这样的代码;
结果是:i=0
j=1;
我想请教一下,为什么i会得”0“呢?
解决方案 »
- 【MyGame】自己写的一款消失类游戏,- -真心不知道起什么名字,大家可以来帮帮起个名
- 设置datagridview,columns属性后读取SQL数据有问题
- 求DNN的学习资料以及安装文件等,比较全面的。
- Ctrl+F的功能实现,请高手来指点,在线等
- mysql里int时间字段,sql语句选择条件怎么选?
- ascii码的运算
- 多线程非要同步吗?同步是保证一个线程处理一块代码,只允许我这线程进行..但是我不lock不行吗?会有什么问题呢?在线等!
- 求ado.net 2.0编写较为规范的c#源码(c/s)
- 自己学习的东西,分享
- 用MemoryStream接收void*的问题
- Datagridview绑定数据,当有True或Flase的列时,为什么会出来复选框按钮啊,怎么解决?
- 配置文件如何添加自定义节点?
int j = getNum();//这个不是静态变量,不初始化
static int num = 1;//这是才给num赋值为1
static int getNum()
所以执行的步骤应该是:先定义i,这时候到getNum()方法,返回num,此时num还没有被赋值,所以是i=0.
后面的j=1也就不难解释了。楼主可以看看这个例子 输出什么?using System;
class A
{
public static int X;
static A() {
X = B.Y + 1;
}
}
class B
{
public static int Y = A.X + 1;
static B() {}
static void Main() {
Console.WriteLine("X = {0}, Y = {1}", A.X, B.Y);
}
}MSDN的解释:http://msdn.microsoft.com/zh-cn/library/aa645612(VS.71).aspx