MST

星途 面试题库

面试题:C# 中可扩展性方法的基本使用

请简述 C# 中可扩展性方法的定义和作用,并举例说明如何创建和调用一个可扩展性方法。
22.6万 热度难度
编程语言C#

知识考点

AI 面试

面试题答案

一键面试

定义

扩展方法允许向现有类型“添加”方法,而无需创建新的派生类型、重新编译或以其他方式修改原始类型。它是一种特殊的静态方法,但可以通过实例方法语法进行调用。

作用

  1. 增强现有类型的功能:无需修改原始类型的代码,就能为其添加新方法。比如为 string 等.NET 框架中的类型添加自定义方法。
  2. 提高代码的可维护性和复用性:将相关功能集中在扩展方法类中,便于管理和复用。

创建和调用示例

  1. 创建扩展方法
    public static class StringExtensions
    {
        public static bool IsNullOrEmptyOrWhiteSpace(this string str)
        {
            return string.IsNullOrEmpty(str) || string.IsNullOrWhiteSpace(str);
        }
    }
    
    在上述代码中,StringExtensions 是一个静态类,IsNullOrEmptyOrWhiteSpace 是扩展方法。this string str 中的 this 关键字表明这是一个扩展方法,str 是要扩展的 string 类型的实例。
  2. 调用扩展方法
    class Program
    {
        static void Main()
        {
            string test1 = null;
            string test2 = " ";
            string test3 = "Hello";
    
            bool result1 = test1.IsNullOrEmptyOrWhiteSpace();
            bool result2 = test2.IsNullOrEmptyOrWhiteSpace();
            bool result3 = test3.IsNullOrEmptyOrWhiteSpace();
    
            Console.WriteLine($"test1: {result1}");
            Console.WriteLine($"test2: {result2}");
            Console.WriteLine($"test3: {result3}");
        }
    }
    
    Main 方法中,可以像调用 string 类型自身的实例方法一样调用 IsNullOrEmptyOrWhiteSpace 扩展方法。