C#中的主要需要记住的基础概念 CLR公共语言运行库 CIL中间语言,所有的代码都会编译成中间语言. CLI公共语言基础结构 C#的优点 C#有自动垃圾回收机制…
委托是C#的一个很重要的知识点. 1.什么是委托 委托在我认为,就是一系列格式相同的方法列表,可能就是定义的名称不一致,参数.返回值等都是一样的. 2.如何声明委托 delegate void MyFunc( int x ); delegate是声明委托的关键字,void是返回值,int x是函数的参数,MyFunc是委托的类型名. 3.创建委托对象 MyFunc funcTest;//声明委托 4.创建委托的标准形式 funcTest = new MyFunc(Test); 5.创建委托的简写…
文件头的Using是Using指令,不是using语句 using (TextWriter tw = File.CreateText("xixi.txt")) { tw.WriteLine("XiXi"); }  …
表达式 字面量 整数字面量 字符字面量 字符串字面量 求值顺序 优先级 结合性 与C和C++不同,在C#中的数字不具有布尔意义. 各种运算符的作用(过) 用户定义类型转换 class XiXiInt { const int iMaxValue = 100; const int iMinValue = 0; private int theValue = 0; public int TheValue { get { return theValue; } set { if (value < iMinV…
1.所有的类都继承自object 2.如何隐藏基类的成员 要隐藏一个继承的数据成员,需要声明一个新的相同类型的成员,并使用相同的名称. 通过在派生类中声明新的带有相同签名的函数成员,可以隐藏或掩盖继承的函数成员.请记住,签名由名称和参数列表组成,但不包括返回类型. 要让编译器知道你在故意隐藏继承的成员,使用new修饰符,没有它,程序可以成功编译,但编译器会警告你隐藏了一个继承成员. 也可以隐藏静态成员. class SomeBase { public string cFiled; } class…
类成员声明语句由下列部分组成:核心声明.一组可选的修饰符和一组可选的特性(attribute). [特性] [修饰符] 核心声明 修饰符: 如果有修饰符,必须放在核心声明之前. 如果有多个修饰符,要有序放置 特性 如果有特性,必须放在修饰符和核心声明之前 如果有多个特性,可以任何顺序 修饰符:public,private,static,const 实例类成员 public int Mem1; 静态字段 static int Mem2;被所有的实例可见,并且如果一个实例改变该值,其它实例使用的该值…
类型推断和var关键字 从C#3.0开始,可以在变量声明的开始部分的的位置使用新的关键字var. Var关键字并不是某种特别类型的符号.它只是句法上的速记,表示任何可以从初始化的右边推断出的类型. Var的一些重要条件: 1.只能用于本地变量,不能用于字段 2.只能在变量声明中包含初始化时使用 3.一旦编译器推断出变量的类型,它就是固定且不能更改的. 在C/C++中,可以先声明一个本地变量,然后在嵌套块中声明另一个相同名称的本地变量.在内部范围,内部名称掩盖了外部名称.然而,在C#中,不管嵌套级…
类成员包括数据成员和函数成员. 和C/C++不同,C#在类型的外部不能声明全局变量,所有的字段都属于类型,而且必须在类型声明内部声明. 和C/C++不同,方法没有返回默认类型,所有方法必须包含返回类型或 void. 有5种成员访问控制 1.private 2.public 3.protected 4.internal 5.protected internal 如果不声明,则是隐式声明私有…
1.C#的中的数值不具有bool特性. 2.dynamic在使用动态语言编写的程序集时使用,这个不太明白,看到后面需要补充!! 动态化的静态类型 3.对于引用类型,引用是存放在栈中,而数据是存放在堆里 如图所示的内容,需要记住一下 4.引用类型的变量值可以为null,而值类型的变量不可 5.创建可空类型 可以从任何值类型创建可空类型,包括预定义的简单类型 不可以从引用类型或其他可空类型创建可空类型. 不需要在代码中空类型,只需要声明可空类型的变量即可.编译器会自动隐匿创建可空类型. int? m…
这章主要是一个对于C#程序的概括解释 和C/C++不同,不是用include声明引用的头文件,而是通过using的方式,声明引用的命名空间. 命名和C/C++类似,并且也是区分大小写的,这件事情在VBA里面,曾经让我无敌地郁闷. Console.Write和Console.WriteLine最大的区别就是后者会在后面加一个回车哦. C#中,用{0}的格式,输出格式化字符串哦. 注意和C/C++中一样,//和/**/的格式 ///的格式的注释,是文档注释,包含XML文本,可以使用工具生成程序文档.…