C# 开发必备的 10 个实用小技巧

B站影视 港台电影 2025-09-03 08:40 1

摘要:string? name = null;Console.WriteLine(name ?? "默认值"); // 默认值name ??= "初始化";Console.WriteLine(name); // 初始化

在日常开发中,很多小技巧可以让我们的 C# 代码更优雅、更高效

今天整理了 10 个高频使用的小技巧,掌握后能大幅提升写代码的体验。

在处理Stream、SqlConnection等需要释放的对象时,可以用using var简化代码:using var reader = new StreamReader("data.txt");
Console.WriteLine(reader.ReadToEnd);

不需要写额外的大括号,作用域结束时会自动释放。

给变量设置默认值时特别好用:

string? name = null;
Console.WriteLine(name ?? "默认值"); // 默认值

name ??= "初始化";
Console.WriteLine(name); // 初始化避免频繁的判断:string? input = null;
Console.WriteLine(input?.Length); // null,不抛异常

int? arr = null;
Console.WriteLine(arr?[0]); // null比string.Format更直观:int age = 25;
string name = "Tom";
Console.WriteLine($"姓名: {name}, 年龄: {age}");

让分支逻辑更清晰:

object obj = 123;

switch (obj)
{
case int i when i > 100:
Console.WriteLine($"大数字: {i}");
break;
case string s:
Console.WriteLine($"字符串: {s}");
break;
default:
Console.WriteLine("其他类型");
break;
}

减少样板代码,写法更简洁:

class User
{
public string Name { get; }
public User(string name) => Name = name;
public override string ToString => $"Net分享: {Name}";
}7️⃣ 解构赋值

快速拆解元组或对象:

(string name, int age) user = ("Alice", 20);
var (n, a) = user;
Console.WriteLine($"{n} - {a}"); // Alice - 20

避免不必要的数组或字符串复制:

var data = "Hello World".AsSpan;
var slice = data.Slice(0, 5);
Console.WriteLine(slice.ToString); // Hello

一行代码搞定筛选与投影:

var numbers = new { 1, 2, 3, 4, 5 };
var result = numbers.Where(n => n % 2 == 0).Select(n => n * n);
Console.WriteLine(string.Join(",", result)); // 4,16轻松定义数据对象,带自动生成的和比较逻辑:public record Person(string Name, int Age);

var p1 = new Person("Tom", 25);
var p2 = p1 with { Age = 30 };

Console.WriteLine(p1); // Person { Name = Tom, Age = 25 }
Console.WriteLine(p2); // Person { Name = Tom, Age = 30 }

如果你经常写 C#,这些技巧能让你的代码更加 简洁、优雅、易维护

·············· END ··············

来源:opendotnet

相关推荐