查看原文
其他

盘点10个常用的C#简洁语法,你用过几个?

DotNet 2024-04-12

The following article is from 编程乐趣 Author 编程乐趣

前言

喜欢C#的其中一个原因,就是C#的语法非常简洁,C#具有可读性和易写性、高效性、强大的功能性等优点,使得开发人员能够更快速、更高效地开发出高质量的应用程序。

下面盘点10个C#常用的简洁语法,你用过几个?

一、属性初始化器

以下例子,为Name属性设置默认值“John”。

public class Person
{
    public string Name { getset; } = "John";  
}

二、字符串插入

以下例子,直接将变量name插入到字符串中,无需使用字符串连接符。

string name = "John";  
Console.WriteLine($"Hello, {name}");  
// 输出:Hello, John

三、合并运算符(??)

以下例子,如果name为null,那么name ?? "unknown"的结果就是"unknown"。

string name = null;  
Console.WriteLine(name ?? "unknown");  
// 输出:unknown

四、LINQ查询表达式

以下例子,LINQ查询表达式来筛选出年龄大于18岁的人。查询表达式是一种简洁且易读的语法。

var query = from person in people
            where person.Age > 18
            select person;

五、Lambda表达式

以下例子,Lambda表达式来定义一个简单的函数。使用Lambda表达式使得函数定义更加简洁。

Func<intintintadd = (x, y) => x + y;  
Console.WriteLine(add(1020));  
// 输出:30

六、异常过滤器

使用异常过滤器来仅捕获符合特定条件的异常。

try
{
   // 可能会抛出异常的代码块 
}  
catch (Exception ex) when (ex.Message == "特定错误信息")  

   // 处理特定错误情况的代码块
}

七、var关键词

使用var定义任何类型的对象,变量numberstringValue的类型由初始化它们的值自动推导得出。

var number = 10;  
var stringValue = "Hello";

八、Events事件

在这个例子中,我们使用事件来定义一个异步通知机制,当MyEvent被触发时,所有注册的MyEventHandler委托都会被调用。

public delegate void MyEventHandler(object sender, MyEventArgs e);  
public class MyClass  
{  
    public event MyEventHandler MyEvent;  
    public void DoSomething()  
    {  
        // 在某个时刻触发事件  
        MyEvent?.Invoke(thisnew MyEventArgs());  
    }  
}

九、匿名函数

使用匿名函数快速定义一个简单的函数。

Action myAction = () => Console.WriteLine("Hello");  
myAction.Invoke();  
// 输出:Hello

十、扩展方法

以下例子,为string扩展一个首字母转为大写的方法ToUpperFirstLetter。

public static class StringExtensions  
{  
    public static string ToUpperFirstLetter(this string str)  
    {  
        if (string.IsNullOrEmpty(str)) return string.Empty;  
        return $"{str[0].ToUpper()}{str.Substring(1)}";  
    }  
}

- EOF -

推荐阅读  点击标题可跳转
C# 中关于 T 泛型
C# 性能优化-树形结构递归优化.NET 8 中的 TimeProvider

看完本文有收获?请转发分享给更多人

推荐关注「DotNet」,提升.Net技能 

点赞和在看就是最大的支持❤️

继续滑动看下一个
向上滑动看下一个

您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存