从2004年初开始学习C#就读的这本书,但是一直是断断续续的看,没有仔细的从头到尾看过,现在把这本书重新拿出来细品(毕竟是Lippman的书,值得细读),发现还有些知识点以前没有注意过或者理解的不够透彻,记录下来,以便随时翻阅并与大家共享:
第一章 Hello, C#
1.2、命名空间(Namespaces):
     命名空间和类可以指定别名(alias)。别名仅在当前的声明空间内有效。(当前声明空间我理解为当前文件,做过测试,在其他代码文件中无法使用)
     using data = System.Data;
     using table= System.Data.DataTable;
1.4、编写一个语句:
     在switch中可以使用goto从一个标签跳转到另一个标签

第二章 Class的设计
2.15、可变长度之参数列():
     关键字params用以指明 “参数个数不定”;紧接着关键字params之后有个array,其型别是我们愿意接受之参数型别。
     public void message(string msg, params object[] args) 与 public void message(string msg, object[] args) 是不同的,前者参数至少为一个string,最长可变;后者的第二个参数是object数组。
2.16、操作符重载():
     所有操作符函数都必须声明为pugblic和static,然后是返回类型,关键字operator,紧跟在关键字operator之后的十待被重载的操作符。
     public static Matrix operator *(Matrix mat, double dval)
     这个操作符重载至少必须有一个参数是此类的实体。参数个数取决于被重载操作符需要的参数个数。参数不可以使ref或out。
     复式赋值操作符不可以进行重载,不能重载的操作符包括:&&, ||, =, ?:, +=, -=, *=, /=, |=, ^=, <<=, >>=
2.17、转换式操作符():
     自定义类的隐式(implicit)转换或显示(explicit)转化,就像“重载操作符”一样,“转化式操作符”必须为static和public。此外还必须指定关键字implicit或explicit。紧跟在关键字operator之后的那个型别,就是转换式的返回型别。其唯一参数所代表的,是转换动作的原始型别。
     隐式转换
     public class BitVector
     {
        static public implicit operator string(BitVector bv)
        {
            return "0";
        }
        static public implicit operator ulong(BitVector bv)
        {
            return 0;
        }
     }
     显示转换
     public class BitVector
     {
        static public explicit operator BitVector(string s)
        {
            return new BitVector();
        }
        static public explicit operator ulong(BitVector bv)
        {
            return 0;
        }
     }
第三章 面向对象程序设计
    这一章描述的都是面向对象的基础,只有个别特别之处
3.14、Exception 继承体系:
    Exception class阶层体系有两个主要子树:SystemException和ApplicationException,如果要引入自己的异常类,建议从ApplicationException派生他们。同时最好为这些异常提供缺省构造函数。    
posted on 2007-10-04 15:42  YGChina  阅读(874)  评论(0)    收藏  举报