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);
Console.ReadLine ();
}
}
运行结果是,x=1,y=2;为什么,我越看越糊涂,说清楚点啊最好带上运行步骤啊
{
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);
Console.ReadLine ();
}
}
运行结果是,x=1,y=2;为什么,我越看越糊涂,说清楚点啊最好带上运行步骤啊
解决方案 »
- 强类型的DataSet和弱类型的DataSet分别用在什么场合?
- 请教各位大侠sql2005中的一个查询语句该怎么写请大家帮忙~谢谢
- 类库中使用Console.WriteLine()有何作用?
- 送分问题!!!!!!!!!
- DropDownList 添加 itme
- C#开发Web应用遭遇白屏
- 菜鳥提間:求一從服務器下載文檔的方法,謝謝。
- 疑难问题高手请进
- 我就剩80分了 都拿出来给大家了 请帮帮小弟吧!
- WebClient中如何使用 WebClient.Headers.Add() ??
- 讨论一下winform 下后台线程的问题,估计很多人都遇到过
- 用c#.net,在web环境下,先运行主程序,在转到类中
X=B.Y+1;
}
X=B.Y+1; -> B.Y=0,X=0+1;static B(){}
static void Main(){
Console.WriteLine("X={0},Y={1}",A.X,B.Y); -> A.Y=1,public static int Y=A.X+1;
啊... 不知道回答对没
2、类构造函数只运行一次,就在首次用到该类的时候。
3、B的.cctor先执行(记住执行前B.X已被清零)这样你能理解了吗?
using System;
class A
{
public static int X;
static .cctor(){
X=B.Y+1;
}
}class B
{
public static int Y;
static .cctor(){
Y==A.X+1;
}
static void Main(){
Console.WriteLine("X={0},Y={1}",A.X,B.Y);
Console.ReadLine ();
}
}
{
public static int X; static A()
{
X = B.Y + 1;
}
} class B
{
public static int Y = A.X + 1; static B()
{
}
} class Program
{
static void Main(string[] args)
{
Console.WriteLine("x={0},y={1}", A.X, B.Y);
Console.Read();
}
}
那是给你阅读和分析的,不使用来运行的 :-)楼主的代码中,程序入口点static void Main()写在class B中。
要调用入口点就需要B类型,所以B的类构造执行在先。而在你的代码中,程序入口点在class Program中。
而调用Console.WriteLine("x={0},y={1}", A.X, B.Y);的时候,
由于A.X出现在前,所以A的类构造执行在先。这就是结果不一样的原因。