面试题答案
一键面试定义
扩展方法允许向现有类型“添加”方法,而无需创建新的派生类型、重新编译或以其他方式修改原始类型。它是一种特殊的静态方法,但可以通过实例方法语法进行调用。
作用
- 增强现有类型的功能:无需修改原始类型的代码,就能为其添加新方法。比如为
string
等.NET 框架中的类型添加自定义方法。 - 提高代码的可维护性和复用性:将相关功能集中在扩展方法类中,便于管理和复用。
创建和调用示例
- 创建扩展方法
在上述代码中,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
类型的实例。 - 调用扩展方法
在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
扩展方法。