读书人

c#中静态方法给静态变量附值解决方法

发布时间: 2012-05-16 23:40:10 作者: rapoo

c#中静态方法给静态变量附值
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“呢?

[解决办法]
静态变量是先初始化的
所以执行的步骤应该是:先定义i,这时候到getNum()方法,返回num,此时num还没有被赋值,所以是i=0.
后面的j=1也就不难解释了。



楼主可以看看这个例子 输出什么?

C# code
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);   }} 

读书人网 >C#

热点推荐