首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > C# >

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

2012-05-16 
c#中静态方法给静态变量附值using Systemusing System.Collections.Genericusing System.Linqusing Sys

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);   }} 

热点排行