C# 扩展方法的使用

这篇文章主要介绍了C# 扩展方法的使用,帮助大家更好的理解和学习c#编程语言,感兴趣的朋友可以了解下

译文链接:https://www.infoworld.com/art...


  public static class StringExtensions
  {
    public static bool IsNumeric(this string str)
    {
      double output;
      return double.TryParse(str, out output);
    }
  }

请注意扩展方法中的第一个参数,正如之前讨论过的,任何扩展方法都必须是静态的,而且在参数之前还要申明一下 this 关键词,比如像上面这个例子一样,相当于告诉了编译器你已经在 string 类上扩展了一个 IsNumeric 方法。

接下来一起看一下如何在 string 类中使用 IsNumeric 方法。


    static void Main(string[] args)
    {
      string str = "100";

      if (str.IsNumeric()) Console.WriteLine("The string object named str contains numeric value.");

      Console.Read();
    }

当你执行完上面这段程序,会在控制台输出:The string object named str contains numeric value。

你可以使用扩展方法这门技术通过向类添加方法的形式增强类的功能,而不需要修改,派生或者重新编译原来的类型,正如之前我提到的,扩展方法也可以应用于值类型之上,接下来我通过一个例子来验证下这是如何实现的。

下面我定义了一个 IntegerExtensions 类,里面有一个 IsEven 扩展方法,当输入的参数是偶数的话,这个方法会返回 true,否则返回 false。


  public static class IntegerExtensions
  {
    public static bool IsEven(this int i)
    {
      return ((i % 2) == 0);
    }
  }

接下来的代码将会展示如何在 integer 类型上调用这个扩展方法。


    static void Main(string[] args)
    {
      int n = 2;

      if (n.IsEven()) Console.WriteLine("The value of the integer is even.");
    }

更多高质量干货:参见我的 GitHub: dotnetfly

以上就是C# 扩展方法的使用的详细内容,更多关于c# 扩展方法的资料请关注得得之家其它相关文章!

本文标题为:C# 扩展方法的使用