C#有两个方法能够一确保变量在使用前进行了初始化:编程
若是局部变量做用域冲突,报CS0136错。ide
字段与局部变量冲突,隐藏掉字段,访问被隐藏的实例字段用this关键字,静态字段使用object.fieldname。函数
值类型与引用类型性能
概念与存储方法的区别,参考第一章。测试
要建立对象必须使用new关键字,将一个引用类型赋值给另外一个引用类型获得的只是它的地址,会随着它的更改而更改。如:ui
Test x,y; x testX = new Test(); y testY = x; testX.value =1; //这条语句执行后testX与testY的value属性的值都会为
C#承认的基本预约义类型并无内置在C#中,而是内置于.NET Framework中。this
decimal不是.NET Formework中内置类型,会形成性能损失。spa
bool类型不能用0来表示false,非0表示true。code
全部内置类型都继承Object类型。orm
string 的不可变性:如上述代码中的testX和testY若是他们是string类型,当testX所指向的string改变时,会从新在托管堆中建立出一个新的string并指向它,testY所指向的值也就不会被更改。
if ,else if,else。
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 //using System; 2 using TestSystem = System; 3 4 namespace 命名空间别名 5 { 6 class Program 7 { 8 static void Main(string[] args) 9 { 10 TestSystem::Console.WriteLine("This is a C# Progam"); 11 TestSystem.Console.ReadKey(); 12 } 13 } 14 }
#if #elif 支持一组逻辑运算符“!”、“==”、“!+”、“||”。
规则应该是一个正确的决策,而不是一种束缚。
Pascal:名称空间、类、函数名。
Camel:类中的字段(最好加“_”为前缀能更直观的知道这是个字段)、方法的参数。
名称/命名的风格应当尽可能保持一致。
命名空间是.NET区别共享程序集中对象名的惟一方法。
Microsoft建议使用以下名称空间:<CompanyName>.<TechnologyName>
略
若是该对象的外观像一个对象,就用属性来表示它,即:
字段的用法
字段总应该是私有的。
本文部分摘录自C#高级编程第九版,其他由Earl Jones整理及总结而成,本人能力有限,若有纰漏望及时指出。
若是你喜欢此书,或想了解更详细内容,请购买正版书籍进行查阅。
转载请注明出处。
2016-05-07 22:29:18