奕玖科技 > 新闻中心 > 技术文章

c#介个常用的语法糖介绍

来源: 奕玖科技 Fly | 2025/4/11 9:29:30

如果我们熟练的掌握语法糖可以让我们用更简洁的代码来写程序,下面我们本人介绍几个C# 中常用的语法糖。

1. 属性简化

// 传统写法
private string _name;
public string Name {
    get { return _name; }
    set { _name = value; }
}

// 语法糖写法
public string Name { get; set; } // 自动属性

如果我们不需要对get set 做特殊的定义,那么使用属性简化语法糖至少好处是可以少定义私有变量_name 及简化代码,这个将大大的提高代码编写效率。

2. 集合初始化器

// 传统写法
List<string> list = new List<string>();
list.Add("A");
list.Add("B");
list.Add("C");

// 语法糖写法
List<string> list = new List<string> { "A", "B", "C" };

3. 字典初始化器

// 传统写法
Dictionary<int, string> dict = new Dictionary<int, string>();
dict.Add(1, "One");
dict.Add(2, "Two");

// 语法糖写法
Dictionary<int, string> dict = new Dictionary<int, string>
{
    {1, "One"},
    {2, "Two"}
};

// C# 6.0更简洁的写法
Dictionary<int, string> dict = new Dictionary<int, string>
{
    [1] = "One",
    [2] = "Two"
};

4. 空值条件运算符 (?. 和 ?[])

// 传统写法
string name = null;
if (person != null)
{
    name = person.Name;
}

// 语法糖写法
string name = person?.Name;

// 用于集合
string first = people?[0]?.Name;

5. 空合并运算符 (??)

// 传统写法
string name = (person != null) ? person.Name : "Unknown";

// 语法糖写法
string name = person?.Name ?? "Unknown";

通过2个??符号,来实现3元运算。

6. 字符串插值 ($)

// 传统写法
string message = string.Format("Hello, {0}! Today is {1}.", name, date);

// 语法糖写法(C# 6.0+)
string message = $"Hello, {name}! Today is {date}.";

7. 表达式体成员

// 传统方法
public int Add(int a, int b)
{
    return a + b;
}

// 语法糖写法
public int Add(int a, int b) => a + b;

// 也可以用于属性
public string FullName => $"{FirstName} {LastName}";

8. using static

// 传统写法
double value = Math.Sqrt(16);

// 语法糖写法
using static System.Math;
double value = Sqrt(16);

9. nameof 表达式

// 传统写法
throw new ArgumentNullException("parameterName");

// 语法糖写法
throw new ArgumentNullException(nameof(parameterName));

10. 元组和解构

// 传统写法需要创建类或结构体来返回多个值

// 语法糖写法
// 返回元组
public (int, string) GetValues() => (42, "Answer");

// 解构
Var (number, text) = GetValues();

11. 模式匹配

// 传统写法
if (obj is int)
{
    int i = (int)obj;
    // 使用i
}

// 语法糖写法
if (obj is int i)
{
    // 使用i
}

// switch表达式
string result = shape switch
{
    Circle c => $"Circle with radius {c.Radius}",
    Rectangle r => $"Rectangle {r.Width} x {r.Height}",
    _ => "Unknown shape"
};

12. 默认字面量

// 传统写法
int number = default(int);

// 语法糖写法
int number = default;

13. 索引和范围

var array = new int[] { 1, 2, 3, 4, 5 };

// 获取最后一个元素
var last = array[^1]; // 5

// 获取子数组
var sub = array[1..3]; // { 2, 3 }

14. 可空引用类型

string? nullableString = null; // 明确表示可为null
string nonNullableString = "Hello"; // 不可为null

以上就是一些常用的语法糖,在我们实际开发环境中可以让我们编写程序非常的方便。

栏目导航
相关文章
文章标签
关于我们
公司简介
企业文化
资质荣誉
服务项目
高端网站定制
微信小程序开发
SEO排名推广
新闻动态
行业新闻
技术学院
常见问题
联系我们
联系我们
人才招聘
联系方式
Q Q:24722
微信:24722
电话:13207941926
地址:江西省抚州市赣东大道融旺国际3栋
Copyright©2008-2022 抚州市奕玖科技有限公司 备案号:赣ICP备2022010182号-1