你的位置:首页 > 软件开发 > ASP.net > C#基础加强篇

C#基础加强篇

发布时间:2015-03-20 21:00:43
1.委托 C#的委托相当于C/C++中的函数指针。函数指针用指针获取一个函数的入口地址,实现对函数的操作。 委托与C/C++中的函数指针不同在于,委托是面向对象的,是引用类型,对委托的使用要先定义后实例化,最后才能调用。 ...

C#基础加强篇

1.委托

      C#的委托相当于C/C++中的函数指针。函数指针用指针获取一个函数的入口地址,实现对函数的操作。

      委托与C/C++中的函数指针不同在于,委托是get='_blank'>面向对象的,是引用类型,对委托的使用要先定义后实例化,最后才能调用。并且委托是类型安全的,它定义了返回类型和参数的类型,而在C/C++中,函数指针只是一个指向内存位置的指针,它不是类型安全的,我们无法判断这个指针实际指向什么,所以参数和返回类型等项就无法知道了。

   

      定义委托

         使用关键字delegate。语法类似于方法的定义,但没有方法体,定义的前面加上关键字delegate。

           例如:定义一个委托:delegate void IntMethod(int x);

                   在这个示例中,定义了一个委托IntMethod,并指定该委托的每个实例都可以包含一个方法的引用,该方法带有一个int参数,返回类型为void。

                   如果要定义一个委托TwoLongOp,该委托表示的方法有两个long类型的参数,返回类型为double,则可以这样定义:delegate double TwoLongOp(long first,long second);

               delegate  string GetString();//该委托表示的方法没有参数,返回string类型。

     定义委托基本上是定义一个新类,可以在定义类的任何相同地方定义委托。也就是说可以在一个类的内部定义,也可以在外部定义,还可以在命名空间中把委托定义为顶层对象。

     可以在委托的定义上应用访问修饰符:public,protected,private等,用来限定委托的作用域。例如:public delegate void IntMethod(int x);

      

    实例化,调用 

 1  private delegate string GetString(int x);//定义委托 2     static void Main(string[] args) 3     { 4       GetString strMed = new GetString(StringMethod);//对委托进行实例化,并进行初始化 5       Console.WriteLine(strMed(555));//调用委托 6       Console.ReadKey(); 7     } 8     private static string StringMethod(int x) 9     {10       return x.ToString();11     } 

原标题:C#基础加强篇

关键词:C#

C#
*特别声明:以上内容来自于网络收集,著作权属原作者所有,如有侵权,请联系我们: admin#shaoqun.com (#换成@)。

可能感兴趣文章

我的浏览记录