none
C# 类型转换问题,提请大家注意(不知道是我的Bug,还是微软的C#的Bug)! RRS feed

  • 问题

  • C#我真的喜欢你的简捷,但是.....
    不知道是我的Bug,还是微软的Bug
    同样的情况VB.net不会出现问题。
    我以前一直喜欢VB,但是因为大家都用C#,最近改用C#。
    其实C#除了简捷一些,其他还是不好。
    比如:你的关键字小写,大小写敏感就不好,Switch Case语句非常死板。

    你要知道类库里面的关键字都是大写开头,你C#偏偏小写,弄得不伦不类,
    看见很多人喜欢驼峰命名,其实这种命名完全违背了人类语言的基本习惯。


    VB好是好,但是你的IF语句不好,有时候要加End If,有时候不要,不严格,
    这样会造成某些混乱,加重Compiler的分析负担,不利于程序的规范。

    public void Test(){
        //当转换发生在变量的时候,一切正常
        var Prop1=null as Object;
         Prop1 = (Double)15.00;        //OK
         Prop1 = (Double)15;            //Ok

       //当转换发生在属性的时候,不正常
        var Obj = new CTestProp();
        Obj.Prop1 = 15.00 ;      //Ok
        Obj.Prop1 = 15;           //Error ,请告诉我为什么?
    }

    public class CTestProp {
        private Object _Prop1;
        public Object Prop1 {
             get { return _Prop1; }
             set { _Prop1 = (Double)value; }       //这里会出错,如果传入Int32类型数据
         }
    }

    2010年3月4日 8:03