论坛首页 编程语言技术论坛

古怪的c#错误

浏览 10807 次
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
作者 正文
   发表时间:2006-04-11  
以下c#代码,目标就是要测试一下循环的效率,居然stack overflow!

谁知道这是什么原因?莫非是我的visual studio 2005不好使?

using System;
using System.Collections.Generic;
using System.Text;
using Console = System.Console;
namespace ConsoleApplication1
{
    class Program
    {
        static void Main(string[] args)
        {
            State state = new State();
            state.ok = false;
            DateTime startTime = DateTime.Now;
            for (int i = 0; i < 100000; i++)
            {

                if (false) break;
            }
            DateTime endTime = DateTime.Now;
            Console.WriteLine(endTime - startTime);
        }
    }

    struct State
    {
        public bool ok{
            get{return ok;}
            set { ok = value; }
        }
    }

}
   发表时间:2006-04-11  
ajoo 写道

struct State
    {
        public bool ok{
            get{return ok;}
            set { ok = value; }
        }
    }

}

死循环在这里,打pp。
0 请登录后投票
   发表时间:2006-04-11  
这么低级的错误貌似ajoo第一次用c#
0 请登录后投票
   发表时间:2006-04-11  
struct State
    {
        bool _ok;
        public bool ok{
            get{return _ok;}
            set { _ok = value; }
        }
    }
0 请登录后投票
   发表时间:2006-04-11  
哈哈,晚了,已经来不及删贴了

不过得确写程序的时候这样的笔误会很多,像我平时用resharper,他的检查工具是不建议使用this,加速了笔误的可能性
0 请登录后投票
   发表时间:2006-04-11  
shit!
不是笔误。是先入为主认为property的语法就是这样。
0 请登录后投票
   发表时间:2006-09-11  
晕,C#里Property不是应该大写开头的么?这样看着也舒服,只要大写,就全是公用的.哪像java,连class也可以当为一个属性,Object有个getClass()方法,sun尽搞些mock...
0 请登录后投票
   发表时间:2006-11-17  
貌似计时器也是原始落后的。
0 请登录后投票
   发表时间:2006-11-17  
这种错误我也犯过, 因为旁边就坐着个C#老手,看了一眼就发现了。

这个property纯粹是个method,让人用起来方便,和java的getter/setter语义是一样的。
0 请登录后投票
   发表时间:2006-11-20  
C# 3.0之后,就简单多了
0 请登录后投票
论坛首页 编程语言技术版

跳转论坛:
Global site tag (gtag.js) - Google Analytics