关於C#代表(delegate)的小问题???
发布网友
发布时间:2022-05-17 15:44
我来回答
共5个回答
热心网友
时间:2023-10-27 15:31
delegate简单的说,就是有类型的函数指针。
与c++或者c的函数指针相比,他的返回类型、参数列表是在定义中
规定的,实例必须遵守。
对于代理的使用者来说,无需知道代理的实现者,只要知道代理就可以了。
热心网友
时间:2023-10-27 15:31
说一堆,不如用一个例子来解释一下
using System;
public class SamplesDelegate {
public delegate String myMethodDelegate( int myInt );
//声明一个字符类型委托,但其所带参数可为任何类型,本例为证型
public class mySampleClass {
public String myStringMethod ( int myInt ) {
if ( myInt > 0 )
return( "positive" );
if ( myInt < 0 )
return( "negative" );
return ( "zero" );
}
public static String mySignMethod ( int myInt ) {
if ( myInt > 0 )
return( "+" );
if ( myInt < 0 )
return( "-" );
return ( "" );
}
}
public static void Main() {
mySampleClass mySC = new mySampleClass();
myMethodDelegate myD1 = new myMethodDelegate( mySC.myStringMethod );
myMethodDelegate myD2 = new myMethodDelegate( mySampleClass.mySignMethod );
Console.WriteLine( "{0} is {1}; use the sign \"{2}\".", 5, myD1( 5 ), myD2( 5 ) );
Console.WriteLine( "{0} is {1}; use the sign \"{2}\".", -3, myD1( -3 ), myD2( -3 ) );
Console.WriteLine( "{0} is {1}; use the sign \"{2}\".", 0, myD1( 0 ), myD2( 0 ) );
}
}
/*
This code proces the following output:
5 is positive; use the sign "+".
-3 is negative; use the sign "-".
0 is zero; use the sign "".
*/
热心网友
时间:2023-10-27 15:32
delegate 是指针的一种,用于指向一组(注意是多数)方法而非数据对象。 delegate 与传统 iso.c++ 的函数指针不同的是 delegate 对类型要求非常严格。
热心网友
时间:2023-10-27 15:32
我是个初学者,我的理解就是"代替""引用"
热心网友
时间:2023-10-27 15:33
那等你智商正常了的时候再来吧