备忘一下,C#语言特性方面比较独特的地方。
1. 变量推断:编译器可以根据变量的初始值推断变量类型并使用。
var name = “bugs”;
2. 字段和局部变量的作用域冲突:类的成员变量或者静态变量都看作是字段,函数里的变量堪称局部变量,两者重名不冲突。
class ScopeTest
{
static int j = 20;
public static void Main()
{
int j = 30;
}
}
4. 变量传递方式就两种类型:值传递(内建的13种类型,自定义结构),引用传递(string, object, 以及自己定义的class)
5. foreach循环迭代不允许改变迭代变量的值,编译会报错。
6. #warning,#error 输出编译分支不正确的提示
#region,#endregion 标记代码块
#pragma 抑制或者还原编辑警告
#pragma warning disable 169
public class Test
{
}
#pragma warning restore 169
public class Test
{
private int intValue;
public int IntValue
{
set
{
intValue = value;
}
get
{
return intValue;
}
}
}
8. ref: 表示传入参数,传入前必须初始化,并且带回修改的值
out: 表示传出参数,传出前必须修改
9. 只读字段、匿名类型
10. partial 部分类,可以把类的定义实现拆分在多个文件中,防止文件过大
11. 添加static在类名前,静态类,无法创建实例
12. 扩展方法