在C#中,扩展方法(Extension Methods)允许您向现有类型添加新的方法,而无需修改原始类型的定义或创建子类。扩展方法是一种静态方法,它的第一个参数用于指定要扩展的类型,并使用 this 关键字进行修饰。通过扩展方法,您可以在不修改原始类型的情况下,为其添加额外的功能。
using System;
public static class StringExtensions
{
public static string Reverse(this string input)
{
char[] charArray = input.ToCharArray();
Array.Reverse(charArray);
return new string(charArray);
}
}
public class Program
{
static void Main(string[] args)
{
string str = "Hello, World!";
string reversedStr = str.Reverse();
Console.WriteLine(reversedStr); // 输出:!dlroW ,olleH
}
}
在上述示例中,我们定义了一个名为 StringExtensions 的静态类,并在其中添加了一个扩展方法 Reverse,用于反转字符串。在 Main 方法中,我们创建了一个字符串对象 str,然后使用扩展方法 Reverse 来反转字符串,并将结果打印出来。
using System;
using System.Collections.Generic;
public static class EnumerableExtensions
{
public static void PrintElements<T>(this IEnumerable<T> collection)
{
foreach (var item in collection)
{
Console.WriteLine(item);
}
}
}
public class Program
{
static void Main(string[] args)
{
List<int> numbers = new List<int> { 1, 2, 3, 4, 5 };
numbers.PrintElements();
// 输出:
// 1
// 2
// 3
// 4
// 5
}
}
在上述示例中,我们定义了一个名为 EnumerableExtensions 的静态类,并添加了一个扩展方法 PrintElements,用于打印实现了 IEnumerable<T> 接口的集合的元素。在 Main 方法中,我们创建了一个整数列表 numbers,然后使用扩展方法 PrintElements 打印列表中的元素。 通过扩展方法,您可以为各种类型添加新的功能,包括系统类型和自定义类型。只要满足扩展方法的规则和限制,您可以根据需要定义和使用扩展方法。