【2017年整理】C# 的知识点总结.doc
文本预览下载声明
C#知识点总结
?
1、 Console.WriteLine():打印到控制台并换行
?
2、 C#类型:值类型、引用类型
?
3、 namespace:不同文件夹下的类可以属于同一个namespace
?
4、 字符串相加:使用“ + ”操作符,任何其他对象与字符串相加都会自动调用ToString()
?
5、 字符串存储:str1 = “111”; str2 = “111”,str1和str2指向同一地址
?
6、 字符串比较:只要str1和str2内容相同,str1 == str2表达式都会返回true。==操作符被String重载
?
7、 整型:byte、short、int、long,都有相应的有/无符号版本,其中byte是无符号的,其他是有符号的
?
8、 浮点型:float、double、decimal,只有有符号版本
?
9、 值类型中的数值型:都包含MinValue、MaxValue属性,可以直接由类型通过(.)操作符访问
?
10、 强制类型转换:“()”操作符,如int i = (int)c;
11、 char:字符型,Unicode编码(16位)。可看作无符号整型,可以使用ushort以上的类型强制类型转换。
?
12、? char/Unicode码段常量:数字0-9(48-57),大写字母A-Z(65-90),小写字母a-z(97-122)
?
13、? 特殊字符:’\t’-制表位;’\n’-换行符eg:?Console.WriteLine(ying shi\t yang) 效果为: ying shi????yang (中间空四个格)
14、 ?赋值语句/表达式:赋值语句在表达式中只计算左值,计算前已经将右值计算结果赋予左值
15、 bool:逻辑型,只有两个值,true/false
16、 ?出现在字符串中的双引号:写法为(\)
17、 ?数值、char、bool的Parse()方法:基础值类型都包含该方法,将字符串转为本类型变量
18、? 数值型.Parse():参数如果不是数值,或者越界,将返回异常
19、? ?编译器捕获数值计算越界:在编译期判断是否越界,如果判断越界,则根本不可能编译成功
20、? 未捕获的数值计算越界(如方法调用):则回到数值型范围开始处。即MaxValue +1:MinValue
21、 sizeof:返回类型所占字节数。如,sizeof(int)返回4
22、?? Framework类型与CLS(公共语言子集):所有类型都是定义在Framework中,语言本身没有类型
23、?? 值类型:结构(struct)、枚举(enum)
24、? C#预定义的13种值类型:.net结构的别名
25、? ?常用值类型别名:Int32-int,Char-char, Double-double,Boolean-bool
26、? 常用类别名:Object-object,String-string
27、? ?struct:值类型。直接声明即可使用。如struct Person{……},Person yang; yang.name=”yang”;
?
28、?? enum:一组预定义的值。
???????????? enum中的值为int型,不可定义为其他类型(比int小的类型会隐式类型转换)
??????????? 如果不指定数值,则从0开始递增1
??????????? 可以指定数值,此时,其后如果不指定数值,则在前一基础上递增1
?
29、 ? 存储:栈,固定大小的存储空间,效率高;
???????????????????????? 堆,不固定大小的存储空间,灵活性大
????????????????????? ? ?栈:值类型、引用类型的句柄(地址值,32位机上是32位(4字节),64位机上8字节)
??????????????????????? ?堆:引用类型的对象
?
30、 引用类型:栈中存储句柄,堆中存储对象,句柄指向对象
?
31、 ?new:在堆中分配空间。所以,struct对象不用new,定义即可使用;class对象需要 new
?
32、????????????? string:是String类的别名,是一种非常特殊的类型
?创建对象:可以使用string s = new String(“111”)方式,也可以直接使用string s = ”111”方
式
?内存开销:如果已经存在string s1 = “111”; 则string s2 = “111”; 直接返回s1句柄存储的地
址
?
33、????????????? 赋值语句(=):在栈中实现一次复制,将右值赋值给左值?引用类型的赋值语句:复制句柄存储的地址
?
34、????????????? %:1
显示全部