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

C#大侠请进解决办法

2012-04-12 
C#大侠请进一道面试题我遇到了两次,明明没有答案,肯定会出错,但为什么没有会出错的选项让我选啊:试题如下:

C#大侠请进
一道面试题我遇到了两次,明明没有答案,肯定会出错,但为什么没有会出错的选项让我选啊:
试题如下:

C# code
 class Class1    {        private static int count = 0;        static Class1()        {            count++;        }        public Class1()        {            count++;        }    }static void Main(string[] args)        {            Class1 o1 = new Class1();            Class1 o2 = new Class1();            Console.WriteLine(o1.count);        }

根据以上代码判断,o1.Count的值是多少?
A.1
B.2
C.3
D.4


[解决办法]
3.............
[解决办法]
怎么才可以通过编译呢,总是报错
[解决办法]
经过我精确计算
F
[解决办法]
最后一句改成这样就能通过了,答案是3
Console.WriteLine(count);
[解决办法]
应改为Console.WriteLine(Class1.count);
静态变量是不需要实例化对象的。

输出值是3,因为静态变量是共用的,每实例化一次都自增1,最后输出的时候又调用构造函数自增1,相当于增加了3次1。


[解决办法]
这个编译还真不能通过的说,
count该变量第一为静态的,第二为私有的,没法折腾。你的面试题出问题了。
[解决办法]
探讨

引用:
这个编译还真不能通过的说,
count该变量第一为静态的,第二为私有的,没法折腾。你的面试题出问题了。

是的,我当时也是这样想的,真是纠结

[解决办法]
那人用错的题来考你的,//结果是3


正确写法是:
C# code
class Class1{    public static int count = 0;    static Class1()  //1    {        count++;    }    public Class1() //3 //5    {        count++;    }}
[解决办法]
参考
最下面的代码和楼主的题目90%类似

热点排行