Contents

c#扩展方法

Contents

扩展方法可以用新方法扩展现有类型改变原始类型的定义。

扩展方法是静态类的静态方法,其中this修饰符应用于第一个参数。

第一个参数的类型将是扩展的类型。

public static class StringExtension {
//需要静态的class
   public static bool IsCapitalized (this string s) {
      if (string.IsNullOrEmpty(s))
         return false;
      return char.IsUpper (s[0]);
   }
}

IsCapitalized扩展方法可以被调用,就像它是一个字符串上的实例方法,如下所示:

Console.WriteLine ("abc".IsCapitalized());

一个扩展方法调用被转换回一个普通的静态方法调用:

Console.WriteLine (StringExtension.IsCapitalized ("abc"));