📜  C#3.0 扩展方法(extension methods)

📅  最后修改于: 2020-11-01 03:02:27             🧑  作者: Mango

C#扩展方法

C#允许我们创建现有方法并向现有类添加新方法,而无需创建新的子类。现有的类不需要重新编译代码。 C#扩展方法是静态方法的特殊类型,可以称为实例方法。

我们可以在C#预定义类和用户创建的自定义类中添加扩展方法。我们需要考虑以下几点来定义扩展方法。

  • 扩展方法应该是静态方法。
  • 它必须使该关键字与类名相关联。
  • 类名应该是参数列表中的第一个参数。

在下面的示例中,我们在C#String类中添加了扩展方法GetUpperCase()。

C#扩展方法示例1

using System;
namespace CSharpFeatures
{
    public static class StringHelper
    {
        public static string GetUpperCase(this string name)
        {
            return name.ToUpper();
        }
    }
    public class ExtensionMethodExample
    {
        static string name = "javatpoint";
        static void Main(string[] args)
        {
            string str = name.GetUpperCase();  // calling extension method using string instance 
            Console.WriteLine(str);
        }
    }
}

输出量

JAVATPOINT

C#扩展方法示例2

在下面的示例中,我们将扩展方法添加到Student类。

using System;
namespace CSharpFeatures
{
    public static class StudentHelper
    {
        public static string GetUpperName(this Student student) // Using this before Student class
        {
            return student.name.ToUpper();
        }
    }
    public class Student
    {
        public string name = "javatpoint";
        public string GetName()
        {
            return this.name;
        }
    }
    public class ExtensionMethodExample
    {
        static void Main(string[] args)
        {
            Student student = new Student();
            Console.WriteLine(student.GetName());
            Console.WriteLine(student.GetUpperName());
        }
    }
}

输出量

javatpoint
JAVATPOINT