zoukankan      html  css  js  c++  java
  • C#委托与C语言函数指针及函数指针数组

    C#委托与C语言函数指针及函数指针数组

      在使用C#时总会为委托而感到疑惑,但现在总新温习了一遍C语言后,才真正理解的委托。

      其实委托就类似于C/C++里的函数指针,在函数传参时传递的是函数指针,在调用的时候通过指针访问这个函数。

      在C语言中函数指针的申明如下:

    //可以理解为申明一个指着变量 Func ,它的类型是 返回Type(可以为 void )类型的参数,接收 (Type one,Type two,...)类型的
    //参数(可以不接受参数)。
    Type *Func(Type one,Type two,...)

       在C语言中函数指针数组申明如下:

    //类似于上面的理解,申明一个Func 指针数组,它的长度为num ,它的类型为 int ()(Type one,Type two,...)类型
    Type (*Func[num])(Type one,Type two,...)

      在函数中作为参数传递:

    //在使用函数 TestFunc 时,需要传一个具有相同的类型申明( Type ()(Type one,Type two,...) )的函数过来,这
    //样就可以使得函数更灵活,能根据具体的需求传入相应的函数来使得代码的重用性增加。
    Type TestFunc(Type value1,Type value2,Type *Func(Type one,Type two,...)) { Func(value1,value2,...); }

    虽说在C#里没有指针(实际上是有的),但深入理解指针的概念与用法对C#的学习还是很有用的。

  • 相关阅读:
    iOS之上架打包时报错:ERROR ITMS-90086: "Missing 64-bit support.
    iOS之Xcode 8.0真机调试运行:This ** is running iOS 10.1.1 (14B100), which may not be supported
    The memory graph Shared by the method
    A memory map of an object
    Directly output the object name
    data encryption
    20181003-20181008
    Array inversion case
    No rabbit death problem
    Breakpoint debugging
  • 原文地址:https://www.cnblogs.com/SilentCode/p/5062173.html
Copyright © 2011-2022 走看看