【VC开源代码栏目提醒】:网学会员VC开源代码为您提供Delegate1.cpp参考,解决您在Delegate1.cpp学习中工作中的难题,参考学习。
// 这是使用应用程序向导生成的 VC++
// 应用
程序项目的主项目文件。
#include "stdafx.h"
#using <mscorlib.dll>
#include <tchar.h>
using namespace System;
__delegate void Delegate1(int); //定义一个委托Delegate1(实际是一个类定义)
__gc class X //定义类X
{
public:
static void Function1(int n)
{
Console::Write(S"X::Function1: ");
Console::WriteLine(n);
}
};
__gc class Y //定义类Y
{
public:
static void Function2(int n)
{
Console::Write(S"Y::Function2: ");
Console::WriteLine(n);
}
};
// 这是此应用程序的入口点
int _tmain(void)
{
// TODO: 请用您自己的代码替换下面的示例代码。
Console::WriteLine(S"Multicast Delegates ");
X* pX = new X;
Y* pY = new Y;
//*********************************************************
Delegate1 *pDelegate1_1, *pDelegate1_2, *pDelegate1_3 ;
pDelegate1_1 = new Delegate1(0, &X::Function1); //0->pX
pDelegate1_2 = new Delegate1(0, &Y::Function2); //0->pY
//若Function1及Function2是非static,将“0”分别替换成pX、pY
pDelegate1_3 = dynamic_cast<Delegate1*>
(Delegate::Combine(pDelegate1_1,pDelegate1_2));
//*********************************************************
pDelegate1_3->Invoke(10);
return 0;
}