§ ITPOW >> 文档 >> C#

C# 几个高效率编程(快捷、方便)的地方

作者:vkvi 来源:ITPOW(原创) 日期:2022-3-22

这里说的是语言,不是框架,也不是开发工具。

并不全部是 C# 的原创。

Linq + Lambda

var obj = Fields.Where(m => m.Size > 90).Select(m => m.Id).Distinct().OrderBy...;

原来要写一大串的,现在如此的简单。

C# 3.0 - Lambda

LINQ 查询操作

??、?.,一系列带问号的操作符

传统写法:

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# 的 $、@(插值与逐字)

泛型

C# 泛型-介绍与使用

C# 利用泛型 where 解决 List 项无法转换的问题

自动推测类型

C# 的 var 可不是弱类型,它是省略写法,自动推测类型。这会大大简化我们开发时书写以及用脑。

属性

高效使用 C# 的属性

out 传入参数同时声明

Func(out int size);
Size = size;

分部类

那些文件名必须和类名一致的设计,真不嫌事大。

C# 3.0 - partial 分部(类型)

匿名类

平时没用到体会不到,真正用到时,才知道有多好用,再配合 Visual Studio 强大的代码提示,开发起来太方便了。

实例化同时进行调用

var id = new User().GetId();
var list = new Category() { ParentId = 1 }.SelectList();

C# Linq 的 Select、Distinct 如何识别唯一性

相关文章