jjzjj

delegate

全部标签

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# - lambda 表达式和匿名方法之间的区别 - C#

这个问题在这里已经有了答案:delegatekeywordvs.lambdanotation(6个答案)关闭9年前。重复:delegatekeywordvs.lambdanotation我了解匿名方法可用于定义委托(delegate)和编写内联函数。使用Lambda表达式与此有什么不同吗?我想我对何时使用什么有点困惑。编辑:此外,似乎要使用匿名或lambda,该类型是否需要扩展方法?

没有变量/参数声明的 C# lambda 表达式?

当一个方法以lambda表达式为参数时,它调用了什么,比如Enumerable.Where,是在没有实际声明表达式中的变量或方法参数的情况下被调用的?例如,我熟悉这个lambda表达式语法:publicstringGetDigits(stringinput){returnnewString(input.Where(i=>Char.IsDigit(i)).ToArray());}然而,令我惊讶的是findout这也可以写成:publicstringGetDigits(stringinput){returnnewString(input.Where(Char.IsDigit).ToArra

c# - 创建 tensorflow 图时出现异常 CallbackOnCollectedDelegate

我尝试使用TensorFlowSharp构建一个小的tensorflow应用程序,有时我会收到此异常:ManagedDebuggingAssistant'CallbackOnCollectedDelegate'对于函数TensorFlowSharp!TensorFlow.TFBuffer+BufferReleaseFunc::Invoke我试图找出它的意思,但我没有完全理解其中的解释。这是抛出异常的代码部分:vargraph=newTFGraph();varmodel=File.ReadAllBytes(ModelsFile);graph.Import(model,"");有人知道我应

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

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

c# - 你如何找出在 C# 中订阅了一个事件的内容?

我遇到了一个问题,我正在处理的应用程序存在内存泄漏。经验告诉我,垃圾收集语言遇到内存泄漏的第一个地方是处理订阅事件和未能取消订阅事件。第二个与存储静态有关。我是C#的新手,对不透明的事件类型感到很沮丧。我们幸运地发现了一些双重订阅错误,但该应用程序确实将事件用于许多事情。虽然我们很清楚取消订阅您订阅的所有内容的原则,但仍然存在内存泄漏。我想系统地确定什么订阅了什么。编辑:感谢您提供指向GetInvocationList()方法的指针。我正在尝试创建一个将动态转储结果的调试工具。问题是我找到的解决方案在.Net2中有效,但在.Net3.5中不再有效。本质上,它告诉您为EventInfo获

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

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