C# 扩展方法

    技术2024-12-10  44

    C# 扩展方法

    C# 扩展方法是使能够向现有类型“添加”方法,而无需创建新的派生类型,重新编译或以其他方式修改原始类型。扩展方法是一种特殊的静态方法,但可以像扩展类型上的实例方法一样进行调用,对于用 C# Visual Basic 编写的客户端代码,调用扩展方法与调用在类型中实际定义的方法之间没有明显的差异。

    实义各调用扩展方法的注意事项:

    1.     定义一个静态类以包含扩展方法,而且改类必须是公开的;

    2.     扩展方法是静态的,并与类有相同的可见性;

    3.     扩展方法的第一个参数指定方法所操作的类型;必须以 this 修饰符开头;

    4.     在调用的代码中,添加包含扩展方法的命名空间;

    5.     按照与调用类型上的实例方法一样的方式调用扩展方法;

    注:第一个参数不是由调用代码指定的,因为它表示正应用运算符是类型,并且编译器已经知道对象的类型 .

     

    示例:添加一个扩展方法为,计算 N 的阶乘

    using System;

    using System.Collections.Generic;

    using System.Linq;

    using System.Text;

    using Extension;

     

    namespace KZMethod_2

    {

        class Program

        {

            static void Main(string [] args)

            {

                int n = 5;

               

                Console .WriteLine( n.Factorial());//调用扩展方法计算阶乘

               

                Console .ReadKey();

               

            }

        }

    }

     

    namespace Extension

    {

        public static class ExtensionClass

        {

             /// <summary>

             /// 求一个数的阶乘

             /// </summary>

             /// <param name="n"></param>

             /// <returns></returns>

             public static int Factorial(this int n)

             {

                 if (n == 0)

                 {

                     return 0;

                 }

                 if (n == 1)

                 {

                     return 1;

                 }

                 else

                 {

                     return n * Factorial(n - 1);

                 }

             }

        }

    }

     

     

       详情请查看: http://msdn.microsoft.com/zh-cn/library/bb383977.aspx

     

    由于本人才疏学浅,不对之处还请大家多多指出!谢谢!

     

    最新回复(0)