草庐IT

def_delegate

全部标签

c# - 使用多播委托(delegate)链接函数

我的问题在以下代码中有详细说明-我问这个的原因是我正在试验委托(delegate)​​://createthedelegatedelegateintdel(intx);classProgram{staticvoidMain(string[]args){Programp;p=newProgram();deld=p.a;d+=p.b;d+=p.c;d+=p.d;d+=p.e;Console.WriteLine(d(10));//返回16....所有函数都会触发,因为各种消息“aiscalled”等都打印到console但只返回从最后一个函数e返回的金额-我在后台假设它们被返回但随后被覆盖?

c# - 为什么我不能在我的可移植类库中调用 Delegate.CreateDelegate?

我有以下问题:我想调用Delegate.CreateDelegate从我针对.NET4.5、WindowsPhone8和Windows8商店应用程序的可移植类库中,但我的代码无法编译。编译器说它无法在Delegate上找到该方法类型。有趣的是,例如Microsoft的PRISM库可以从可移植类库中调用“Delegate.CreateDelegate”。它在DelegateReference中这样做类(class)。PRISM可移植类库面向.NET4.0、Windows8StoreApps、WindowsPhone8和Silverlight5(因此是一个更加严格的集合)。未编译的代码如下

c# - 委托(delegate)不只是简写接口(interface)吗?

假设我们有:interfaceFoo{boolFunc(intx);}classBar:Foo{boolFunc(intx){return(x>0);}}classBaz:Foo{boolFunc(intx){return(x现在我们可以将Bar和Baz作为Foos来回折腾,并调用它们的Func方法。委托(delegate)对此进行了一些简化:delegateboolFoo(intx);boolBar(intx){return(x0);}现在我们可以将Bar和Baz作为Foo委托(delegate)来回折腾了。除了缩短代码之外,委托(delegate)的真正好处是什么?

c# - 委托(delegate)的@前缀有什么特殊含义吗?

我曾多次看到ReSharper生成如下所示的代码:delegatevoidmyHandler(inti);myHandlermyHandlerContainer;...foreach(Delegate@delegateinmyHandlerContainer.GetInvocationList()){...}@delegate中的“@”是否赋予该变量任何特殊语义?或者这只是我以前没有遇到过的约定? 最佳答案 来自MSDN的更多详细信息:Theprefix"@"enablestheuseofkeywordsasidentifiers,

c# delegate 没有正常工作?

我对C#有点陌生,所以我想到了这个问题。问题:为什么调用func2?哦,还有一件事。假设我向委托(delegate)添加了一个函数。在这个函数中我调用了另一个委托(delegate),但是我想确保在这个函数调用这个委托(delegate)之前调用添加到第一个委托(delegate)的所有其他函数,是否有任何干净的解决方案(对getInvocationList并不真正感兴趣)。谢谢你们,你们是最棒的。classProgram{delegatevoidvoidEvent();voidEventtest;privatevoidfunc1(){Console.Write("func1");te

c# - Dispatcher.Invoke with anonymous delegate 在 Silverlight 中有效但在 WPF 中无效

在Silverlight4中,我有一个自定义服务类,它有一个异步的Completed事件。在Completed事件中,我获取返回的数据并通过如下方式调用填充方法:privatevoidservice_Completed(objectsender,CompletedEventArgsargs){Dispatcher.BeginInvoke(()=>populateInbox(args.Jobs));}privatevoidpopulateInbox(Listjobs){inbox.DataContext=jobs;}BeginInvoke在SL4中工作,但是当我将它移植到WPF时,出现以

c# - 检查委托(delegate)是否为空

我正在阅读EssentialC#3.0一书,想知道这是否是检查委托(delegate)是否为null的好方法?:classThermostat{publicdelegatevoidTemperatureChangeHandler(floatnewTemperature);publicTemperatureChangeHandlerOnTemperatureChange{get;set;}floatcurrentTemperature;publicfloatCurrentTemperature{get{returnthis.currentTemperature;}set{if(curre

c# - 委托(delegate)给实例方法不能有 null 'this'

我正在开发一个C#.NET2.0应用程序,其中在运行时根据环境加载两个DLL之一。两个DLL包含相同的函数,但它们没有链接到相同的地址偏移量。我的问题是关于我的应用程序代码中的函数委托(delegate)。publicclassMyClass{publicdelegateintMyFunctionDelegate(int_some,string_args);publicMyFunctionDelegateMyFuncToCallFrmApp;publicMyClass():base(){this.MyFuncToCallFrmApp=newMyFunctionDelegate(this

c# - 在 OOP 中覆盖方法与分配方法委托(delegate)/事件

这是一个有点奇怪的oop问题。我想创建一组对象(在设计时已知),每个对象都有与之关联的某些功能。我可以通过为我的对象提供可以包含“代表”的属性来做到这一点:publicclassStateTransition{FuncCondition{get;set;}ActionActionToTake{get;set;}FuncVerifyActionWorked{get;set;}}StateTransitionfoo=newStateTransition{Condition=()=>{//...}//etc};或者,我可以使用一个抽象类并为我想创建的每个对象实现它:publicabstrac

c# - 测试委托(delegate)是否平等

我正在构建一个分层集合类,它在空间上对磁共振图像进行排序,并根据用于生成它们的各种采集参数将它们排列成组。用于执行分组的具体方法由类的用户提供。我在下面的示例代码中提取了相关功能。对于IEquatable实现,我希望能够比较_myHelperDelegate两个MyClass的属性实例以确定两个委托(delegate)是否指向同一段代码。(_myHelperDelegate==other._myHelperDelegate)下面if语句中的子句显然是执行此操作的错误方法(它无法编译,给出错误“预期的方法名称”)。我的问题是,有没有办法比较两个委托(delegate)以确定它们是否引用同