概念与存储方法的区别,参考第一章。
引用类型
要创建对象必须使用new关键字,将一个引用类型赋值给另一个引用类型得到的只是它的地址,会随着它的更改而更改。如:
1 2 3 4 5 6 7 |
|
CTS类型
C#认可的基本预定义类型并没有内置在C#中,而是内置于.NET Framework中。
decimal不是.NET Formework中内置类型,会造成性能损失。
bool类型不能用0来表示false,非0表示true。
所有内置类型都继承Object类型。
string 的不可变性:如上述代码中的testX和testY如果他们是string类型,当testX所指向的string改变时,会重新在托管堆中创建出一个新的string并指向它,testY所指向的值也就不会被更改。
流控制
条件语句
if ,else if,else。
switch语句
case语句的值必须要是常量表达式,不允许使用变量。
与C++的区别:激活了前一个case不会自动激活后一个case,且每一个case必须用break否则报错;可以把字符串作为测试变量。
可以使用goto "标签"经行跳转。
case为空则不需要break。
循环
for 与 while的区别:for适合可预测次数的循环,while适合不可预测次数的循环。
foreach
要实现foreach的遍历,类中就必须实现IEnumerable接口。
foreach中不能改变每一项的值。
跳转语句
goto
break
跳出当前循环
continue
跳过此次循环
return
退出当前方法
枚举
一旦代码编辑好,枚举就成为基本类型。
名称空间(命名空间)
与文件或组件不同,名称空间是一种逻辑组合,而不是物理组合。
一般名称空间可接受的格式为CompanyName.ProjectName.StstemSection。
名称空间别名的语法:
using slias = NamespaceName;
命名空间修饰符为 “::” 。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
|
命名空间别名演示
预编译
#if #elif 支持一组逻辑运算符“!”、“==”、“!+”、“||”。
C#编程规则
标识符规则
可以包含数字字符,但是它们他们必须以字母或下划线开头。
不能使用C#关键字作标识符。
用户约定
规则应该是一个正确的决策,而不是一种束缚。
命名约定
Pascal:名称空间、类、函数名。
Camel:类中的字段(最好加“_”为前缀能更直观的知道这是个字段)、方法的参数。
名称风格
名称/命名的风格应当尽量保持一致。
命名空间的名称
命名空间是.NET区别共享程序集中对象名的唯一方法。
Microsoft建议使用如下名称空间:<CompanyName>.<TechnologyName>
名称和关键字
略
属性和方法的使用
如果该对象的外观像一个对象,就用属性来表示它,即:
客户端医改能读取它的值,最好不要使用只写属性。
读取该值不应该花他长时间。
不应有负面效应。
可以按任意顺序设置属性。
顺序读取属性也应该有相同的效果。
字段的用法
字段总应该是私有的。
2016-05-07 22:29:18
以上就是C#高级编程(二)-核心C#的详解的详细内容!
相关阅读 >>
更多相关阅读请进入《C#》频道 >>

C#高级编程(第11版) C# 7 & .NET Core 2.0(.NET开发经典名著)
作者:[美]克里斯琴·内格尔(Christian Nagel)著。出版时间:2019年3月。