c#里怎么实现一个指向函数的指针、?

 我来答
year医海无边
2017-01-14 · TA获得超过1.5万个赞
知道小有建树答主
回答量:9169
采纳率:66%
帮助的人:1130万
展开全部
C#中采用委托的方式,其实和C++的typedef非常相像,都是必须先定义一个类型,然后用该类型去声明一个变量。最大的不同在赋值阶段,C++只需要简单的将函数地址赋给指针,而C#必须用new声明一个对象,并且还要求相应的函数作为形参传入。在这个阶段,似乎C#显得更为复杂。到了调用阶段,C++和C#都可以容器后加个括号就能完成调用,但C++还多了一种*的方式。
瓢瓢5r
2013-07-10 · 超过38用户采纳过TA的回答
知道小有建树答主
回答量:212
采纳率:0%
帮助的人:123万
展开全部
委托就相当于 指向函数的指针
追问
能具体点吗?或者你看我下边的c++代码如何用c#实现?
okCaptureStream(hStream, NONE, (FARPROC)exMsgCallback, 0);
BOOL CALLBACK exMsgCallback(HANDLE hStream, LPBYTE lpStreamBuf, long length)
{
//代码
}
追答
        //1.声明一个委托
        public delegate bool MessageCallBack(HANDLE hStream, LPBYTE lpStreamBuf, long length);


        private void EXE()
        {
            //使用
            okCaptureStream("var1", "var2", exMsgCallback, 2);
        }
        // 这是你你要使用委托的方法,MessageCallBack 就和普通的变量没有区别。
        private void okCaptureStream(string var1, string var2, MessageCallBack callback, int num)
        {
            //执行回调的方法
            var flag= callback.Invoke(参数列表...);
        }
        private bool exMsgCallback(HANDLE hStream, LPBYTE lpStreamBuf, long length)
        {
            //回调逻辑...
            return true;
        }
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式