我的C# .NET笔记
2014年09月01日

1、VS (2013) 快捷键

VS C# 代码格式化快捷键: 全选代码,Ctrl+K, Ctrl+D

行注释: Ctrl+K, Ctrl+C
取消行注释: Ctrl+K, Ctrl+U


2、C# 语法
C# 中的泛型List,可以替换Java中的ArrayList
Dictionary可以替换Java中的HashMap

overload:重载指的是同一个类中有两个或多个名字相同但是参数不同的方法,(注:返回值不能区别函数是否重载),重载没有关键字
override:过载也称重写是指子类对父类中虚函数或抽象函数的“覆盖”(这也就是有些书将过载翻译为覆盖的原因),但是这种“覆盖”和用new关键字来覆盖是有区别的。
new:覆盖指的是不同类中(基类或派生类)有两个或多个返回类型、方法名、参数都相同,但是方法体不同的方法。
但是这种覆盖是一种表面上的覆盖,所以也叫隐藏,被覆盖的父类方法是可以调用得到的。
重载覆盖的发生条件:
重载,必然发生在一个类中,函数名相同,参数类型或者顺序不同构成重载,与返回类型无关
重写,必然发生在基类和派生类中,其类函数用virtual修饰,派生类用override修饰
覆盖,在子类中写一个和基类一样名字(参数不同也算)的非虚函数,会让基类中的函数被隐藏,编译后会提示要求使用New关键字


3、.NET WinForm类型的项目,显示控制台打印:

添加一个静态属性:
        [DllImport("kernel32.dll")]
        public static extern bool AllocConsole();
并在Main方法中调用它:
       static void Main()
        {
            AllocConsole();
            ........
       }

4、ashjj