这里说的是语言,不是框架,也不是开发工具。
并不全部是 C# 的原创。
Linq + Lambda
var obj = Fields.Where(m => m.Size > 90).Select(m => m.Id).Distinct().OrderBy...;
原来要写一大串的,现在如此的简单。
??、?.,一系列带问号的操作符
传统写法:
if (c == null) { a = ""; } else { a = c; }
现在:
a = c ?? "";
比三目运算符还方便。
再看。
传统写法:
if (c != null) { a = c.B }
现在:
a = c?.B
C# 带问号 ? 的操作符大全:?:、?.、?[]、??、??=
多行文本与插值
插值不稀奇,但是 C# 做得特别棒。
string sql = $@"select * from {TableName} where Name='{Name.Replace("'", "''")}'";
泛型
C# 利用泛型 where 解决 List 项无法转换的问题
自动推测类型
C# 的 var 可不是弱类型,它是省略写法,自动推测类型。这会大大简化我们开发时书写以及用脑。
属性
out 传入参数同时声明
Func(out int size); Size = size;
分部类
那些文件名必须和类名一致的设计,真不嫌事大。
匿名类
平时没用到体会不到,真正用到时,才知道有多好用,再配合 Visual Studio 强大的代码提示,开发起来太方便了。
实例化同时进行调用
var id = new User().GetId(); var list = new Category() { ParentId = 1 }.SelectList();