C#扩展知识:什么是扩展函数

本文介绍了C#中的扩展函数,如何通过静态类和this关键字为现有类型添加新方法,如`IsNullOrEmpty`示例。扩展方法提供便利性,但不改变原有类型结构,主要用于查询而非修改。
该文章已生成可运行项目,

一、扩展函数是什么

C#中的扩展函数(方法)是一种允许你向现有类型添加新方法的机制,而无需修改它们的源代码。这是通过创建一个静态类,并在其中定义静态方法的方式来实现的。这些静态方法被称为扩展方法,并且必须具有一个特殊的参数,该参数指定了要扩展的类型。

二、定义条件

要定义一个扩展方法,需要满足以下条件:

1、扩展方法必须是一个静态方法。
2、扩展方法必须位于一个静态类中。
3、第一个参数必须使用 this 关键字进行修饰,并指定要扩展的类型。

三、示例

代码如下(示例):

using System;

public static class StringExtensions
{
    public static bool IsNullOrEmpty(this string str)
    {
        return string.IsNullOrEmpty(str);
    }
}

class Program
{
    static void Main()
    {
        string myString = "Hello, World!";

        // 使用扩展方法
        bool result = myString.IsNullOrEmpty();

        Console.WriteLine($"Is string null or empty? {result}");
    }
}

在上面的例子中,IsNullOrEmpty 方法被添加到 string 类型,使得我们可以像调用实例方法一样调用它。这并不是 string 类型本身的变更,而是在一个静态类中添加了一个方法,通过扩展方法的方式使得我们可以更方便地使用。

  • 请注意,扩展方法并不能访问私有成员,也不能修改原始类型。它们只是提供了一种语法糖,使得我们可以更清晰和方便地调用这些方法。

也可参考微软官方解释:
链接:https://learn.microsoft.com/zh-cn/dotnet/csharp/programming-guide/classes-and-structs/extension-methods

本文章已经生成可运行项目
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值