-
在C#中,有许多简写技巧可以让你的代码更加简洁高效,以下是一些常见的:
1. 变量声明与初始化
-
使用 var 关键字 :当你能从初始化表达式中推断出变量类型时,可以使用 var 关键字代替显式的类型声明。例如:
-
var name = "Kimi"; // 相当于 string name = "Kimi"; var age = 25; // 相当于 int age = 25; var person = new { Name = "Kimi", Age = 25 }; // 匿名类型
这样可以减少代码量,使代码更简洁,尤其是当类型名称很长或者类型是通过复杂表达式推导出来的时。
2. 条件语句
-
三元运算符 :用于替代简单的 if - else 语句。格式为
条件表达式 ? 真值表达式 : 假值表达式
。例如:
-
-
int a = 10, b = 20; int max = a > b ? a : b; // 相当于 if (a > b) { max = a; } else { max = b; }
当条件判断很简单且只需要对一个变量赋值时,使用三元运算符可以使代码更加简洁。
-
空合并运算符( ?? ) :用于处理可空类型或可能为 null 的变量。如果左侧表达式为 null,则返回右侧表达式的值。例如:
-
string name = null; string displayName = name ?? "Unknown"; // 如果 name 为 null,则 displayName 为 "Unknown"
这在处理数据库查询结果、用户输入等可能为空的情况时非常方便,可以避免大量的 if - null 判断。
-
-
3. 循环语句
-
foreach 循环中的 var 关键字 :在 foreach 循环中,使用 var 关键字可以简化元素类型的声明。例如:
-
var names = new List<string> { "Kimi", "Alice", "Bob" }; foreach (var name in names) { Console.WriteLine(name); }
这样可以避免重复写元素类型,使代码更简洁。
-
4. Lambda 表达式简化委托和匿名方法 :Lambda 表达式可以用来简化委托和匿名方法的编写。例如,定义一个 Action 委托:
-
Action<string> printAction = (name) => Console.WriteLine(name); printAction("Kimi");
这比使用匿名方法( delegate ( string name ) { Console.WriteLine(name); } )更加简洁明了。Lambda 表达式在 LINQ 查询、事件处理等场景中非常常用,可以让你的代码更加简洁和表达式化。
-
5. 属性简化
-
自动实现属性 :当属性只有简单的 get 和 set 访问器,且不需要在访问器中添加额外逻辑时,可以使用自动实现属性。例如:
-
public class Person { public string Name { get; set; } public int Age { get; set; } }
这样编译器会自动为你生成私有字段来存储属性值,减少了代码量,使代码更加简洁。
-
6. 字符串处理
-
字符串插值 :使用
$"{变量}"
的方式可以在字符串中直接插入变量值。例如:
-
string name = "Kimi"; int age = 25; string info = $"My name is {name} and I am {age} years old.";
这比使用 string.Format 方法( string.Format("My name is {0} and I am {1} years old.", name, age))更加直观和方便,尤其是在字符串中需要插入多个变量时。
-
7. 集合初始化
-
集合初始化器 :在创建集合时,可以使用集合初始化器一次性添加多个元素。例如:
-
var names = new List<string> { "Kimi", "Alice", "Bob" }; var dictionary = new Dictionary<int, string> { { 1, "One" }, { 2, "Two" }, { 3, "Three" } };
这样可以避免多次调用 Add 方法来添加元素,使代码更加简洁。