草庐IT

delegators

全部标签

c# - 委托(delegate)们,为什么?

这个问题在这里已经有了答案:关闭12年前。PossibleDuplicates:WhenwouldyouusedelegatesinC#?Thepurposeofdelegates我看到很多关于使用委托(delegate)的问题。我仍然不清楚在哪里以及为什么要使用委托(delegate)而不是直接调用方法。我多次听到这句话:“然后可以将委托(delegate)对象传递给可以调用引用方法的代码,而不必在编译时知道将调用哪个方法。”我不明白这种说法是正确的。我编写了以下示例。假设您有3个具有相同参数的方法:publicintadd(intx,inty){inttotal;returntot

c# - 委托(delegate)们,为什么?

这个问题在这里已经有了答案:关闭12年前。PossibleDuplicates:WhenwouldyouusedelegatesinC#?Thepurposeofdelegates我看到很多关于使用委托(delegate)的问题。我仍然不清楚在哪里以及为什么要使用委托(delegate)而不是直接调用方法。我多次听到这句话:“然后可以将委托(delegate)对象传递给可以调用引用方法的代码,而不必在编译时知道将调用哪个方法。”我不明白这种说法是正确的。我编写了以下示例。假设您有3个具有相同参数的方法:publicintadd(intx,inty){inttotal;returntot

c# - 作为委托(delegate)的构造函数 - 在 C# 中是否可能?

我有一个像下面这样的类:classFoo{publicFoo(intx){...}}我需要像这样向某个方法传递一个委托(delegate):delegateFooFooGenerator(intx);是否可以直接将构造函数作为FooGenerator值传递,而无需键入:delegate(intx){returnnewFoo(x);}?编辑:就我个人而言,问题涉及.NET2.0,但也欢迎提供3.0+的提示/回复。 最佳答案 我假设您通常会在工厂实现中做这样的事情,其中​​实际类型在编译时是未知的...首先,请注意更简单的方法可能是创建

c# - 作为委托(delegate)的构造函数 - 在 C# 中是否可能?

我有一个像下面这样的类:classFoo{publicFoo(intx){...}}我需要像这样向某个方法传递一个委托(delegate):delegateFooFooGenerator(intx);是否可以直接将构造函数作为FooGenerator值传递,而无需键入:delegate(intx){returnnewFoo(x);}?编辑:就我个人而言,问题涉及.NET2.0,但也欢迎提供3.0+的提示/回复。 最佳答案 我假设您通常会在工厂实现中做这样的事情,其中​​实际类型在编译时是未知的...首先,请注意更简单的方法可能是创建

c# - 异步与 "old async delegate"的即发即弃

我正在尝试用一种新语法替换旧的即发即弃调用,希望更加简单,但它似乎让我望而却步。这是一个例子classProgram{staticvoidDoIt(stringentry){Console.WriteLine("Message:"+entry);}staticasyncvoidDoIt2(stringentry){awaitTask.Yield();Console.WriteLine("Message2:"+entry);}staticvoidMain(string[]args){//oldwayActionasync=DoIt;async.BeginInvoke("Test",ar=

c# - 异步与 "old async delegate"的即发即弃

我正在尝试用一种新语法替换旧的即发即弃调用,希望更加简单,但它似乎让我望而却步。这是一个例子classProgram{staticvoidDoIt(stringentry){Console.WriteLine("Message:"+entry);}staticasyncvoidDoIt2(stringentry){awaitTask.Yield();Console.WriteLine("Message2:"+entry);}staticvoidMain(string[]args){//oldwayActionasync=DoIt;async.BeginInvoke("Test",ar=

c# - Simple Delegate(委托(delegate))与多播委托(delegate)

我看了很多文章,但我仍然不清楚我们通常创建的普通委托(delegate)和多播委托(delegate)之间的区别。publicdelegatevoidMyMethodHandler(objectsender);MyMethodHandlerhandler=newMyMethodHandler(Method1);handler+=Method2;handler(someObject);上面的委托(delegate)MyMethodHandler将调用这两个方法。现在多播委托(delegate)从哪里来。我读过他们可以调用多个方法,但恐怕我对委托(delegate)的基本理解是不正确的。

c# - Simple Delegate(委托(delegate))与多播委托(delegate)

我看了很多文章,但我仍然不清楚我们通常创建的普通委托(delegate)和多播委托(delegate)之间的区别。publicdelegatevoidMyMethodHandler(objectsender);MyMethodHandlerhandler=newMyMethodHandler(Method1);handler+=Method2;handler(someObject);上面的委托(delegate)MyMethodHandler将调用这两个方法。现在多播委托(delegate)从哪里来。我读过他们可以调用多个方法,但恐怕我对委托(delegate)的基本理解是不正确的。

c# - 手动创建委托(delegate)与使用 Action/Func 委托(delegate)

今天我想声明一下:privatedelegatedoubleChangeListAction(stringparam1,intnumber);但为什么不用这个:privateFuncChangeListAction;或者如果ChangeListAction没有我可以使用的返回值:privateActionChangeListAction;那么用delegate声明委托(delegate)的优势在哪里?关键字?是不是因为.NET1.1,而.NET2.0来了Action.NET3.5出现了Func? 最佳答案 问世Action和Func

c# - 手动创建委托(delegate)与使用 Action/Func 委托(delegate)

今天我想声明一下:privatedelegatedoubleChangeListAction(stringparam1,intnumber);但为什么不用这个:privateFuncChangeListAction;或者如果ChangeListAction没有我可以使用的返回值:privateActionChangeListAction;那么用delegate声明委托(delegate)的优势在哪里?关键字?是不是因为.NET1.1,而.NET2.0来了Action.NET3.5出现了Func? 最佳答案 问世Action和Func