c#是一种具有c++特性,java样式,Basic快捷建模特性的编程语言,如果熟悉java语言,java编程结构,打包和垃圾 回收的概念对学习c#大有帮助。
所谓重载是指:方法名相同,而参数不同(参数类型,参数个数)
构造函数是和类名相同的的类的一个方法、
当我们需要把方法作为参数传递给其他方法的时候,就需要使用委托。
紫色的是方法,有指头的是属性,方法后是用的括号,属性用的是等号。
一个解决方案下面有多个项目,一个项目下有多个CS文件,一个文件下面有多个类。
char 表示一个字符,单引号。char c1='f'(C#中汉字为一个字符)
转义符:
说明:"\""中\是告诉编译器不要把这个"当成字符串的结束。@是不把\当成转义符。
例子:\,string name="gay\"me";string name="gay\nsdfs";(\n表示回车,一个字符)
@"c:\a.txt"
赋值运算符:
赋值运算符=,让左边变量的值等于右边的计算结果。这就能解释令人不解的i=i+1;
enum QQStatus{online,offline,hidden}
枚举的用法,QQStatus status = QQStatus.online;
和用字符串比起来,用枚举的好处就是限定了变量的取值范围,程序处理起来更方便。
构造函数:
用来创建对象的特殊函数,函数名和类名一样,没有返回值,连void都不用。
隐式转换,显示转换:
隐式转换:一般是低类型向高类型转化,能够保证值不发生变化。
显示转换:也称强制类型转换。不能保证数据的正确性。
字符:
char c;
int a = c; //隐式转换 ok
int b = (int )c; //显示转换 ok
char d = a; //隐式转换 error
char e = (char)a;//显示转换 ok
对象:
Chinese ch= new Chinese();
//隐式转换,把子类变量赋值给父类变量
Person p = ch;
//显式转换,把父类变量赋值给子类变量
Person p = new Chinese();
Chinese ch = (Chinese)p;
方法重写:
方法重写:只有用virtual、abstract、override修饰的方法在继承后子类可以重写。//实现方法重写的方式3个关键字
什么是方法重写?答:方法重写是指子类继承父类后在子类中有一个与父类中某个方法签名一致,但方法内容可以重新定义的方法,并用override关键字修饰。
抽象类:abstract关键字修饰;不能实例化;可以有抽象成员也可以有非抽象成员(1.有抽象成员的类必须标记为abstract,并且不能有任何实现;2.类中的抽象成员在子类中必须实现(override),除非子类也是抽象类);
virtual方法和abstract方法的区别:
virtual方法子类可以override,也可以不override。
Abstract标记的成员在子类中必须override,除非子类也是抽象类。