草庐IT

Delegate

全部标签

c# - 在 C# 中连接 Lambda 函数

我想使用C#3.5构建一个谓词,逐个发送到where子句。我创建了一个非常简单的控制台应用程序来说明我得到的解决方案。这非常有效。绝对完美。但我不知道如何或为什么。publicstaticFuncGetPredicate(){Funcpredicate=null;predicate+=t=>t.Response=="00";predicate+=t=>t.Amount当我说“predicate+=”时,那是什么意思?谓词-=似乎什么都不做,编译器不喜欢^=、&=、*=、/=。编译器也不喜欢'predicate=predicate+t=>t.Response....'。我遇到了什么问题?

c# - 在 C# 中连接 Lambda 函数

我想使用C#3.5构建一个谓词,逐个发送到where子句。我创建了一个非常简单的控制台应用程序来说明我得到的解决方案。这非常有效。绝对完美。但我不知道如何或为什么。publicstaticFuncGetPredicate(){Funcpredicate=null;predicate+=t=>t.Response=="00";predicate+=t=>t.Amount当我说“predicate+=”时,那是什么意思?谓词-=似乎什么都不做,编译器不喜欢^=、&=、*=、/=。编译器也不喜欢'predicate=predicate+t=>t.Response....'。我遇到了什么问题?

c# - 为什么我不能在接口(interface)中放置委托(delegate)?

为什么我不能向我的界面添加委托(delegate)? 最佳答案 您可以使用以下任何一种:publicdelegatedoubleCustomerDelegate(inttest);publicinterfaceITest{EventHandlerMyHandler{get;set;}CustomerDelegateHandlerWithCustomDelegate{get;set;}eventEventHandlerMyEvent;} 关于c#-为什么我不能在接口(interface)中

c# - 为什么我不能在接口(interface)中放置委托(delegate)?

为什么我不能向我的界面添加委托(delegate)? 最佳答案 您可以使用以下任何一种:publicdelegatedoubleCustomerDelegate(inttest);publicinterfaceITest{EventHandlerMyHandler{get;set;}CustomerDelegateHandlerWithCustomDelegate{get;set;}eventEventHandlerMyEvent;} 关于c#-为什么我不能在接口(interface)中

c# - ConcurrentDictionary.GetOrAdd 始终执行委托(delegate)方法

我注意到GetOrAdd()总是执行工厂委托(delegate),即使值存在于字典中也是如此。例如:classProgram{privatestaticConcurrentDictionary_cache=newConcurrentDictionary();staticvoidMain(string[]args){stringvalue;value=GetValueFromCache("A");//cacheisempty,CacheValueFactoryexecutes,Aisaddedvalue=GetValueFromCache("A");//cachecontainsA,Ca

c# - ConcurrentDictionary.GetOrAdd 始终执行委托(delegate)方法

我注意到GetOrAdd()总是执行工厂委托(delegate),即使值存在于字典中也是如此。例如:classProgram{privatestaticConcurrentDictionary_cache=newConcurrentDictionary();staticvoidMain(string[]args){stringvalue;value=GetValueFromCache("A");//cacheisempty,CacheValueFactoryexecutes,Aisaddedvalue=GetValueFromCache("A");//cachecontainsA,Ca

c# - 行动委托(delegate)< ref T1, T2>

我正在尝试创建一个采用ref参数的静态方法的委托(delegate)。请不要问我为什么要这样做。这都是学习.Net、C#和反射如何工作以及如何对其进行优化的一部分。我的代码是:publicstructDataRow{privatedoublet;staticpublicvoidCram_T(refDataRowdr,doublea_t){dr.t=a_t;}}''''TypemyType=typeof(DataRow);MethodInfomy_Cram_T_Method=myType.GetMethod("Cram_T");varmyCram_T_Delegate=Delegate.

c# - 行动委托(delegate)< ref T1, T2>

我正在尝试创建一个采用ref参数的静态方法的委托(delegate)。请不要问我为什么要这样做。这都是学习.Net、C#和反射如何工作以及如何对其进行优化的一部分。我的代码是:publicstructDataRow{privatedoublet;staticpublicvoidCram_T(refDataRowdr,doublea_t){dr.t=a_t;}}''''TypemyType=typeof(DataRow);MethodInfomy_Cram_T_Method=myType.GetMethod("Cram_T");varmyCram_T_Delegate=Delegate.

c# - 在值类型上定义的扩展方法不能用于创建委托(delegate)——为什么不呢?

可以将扩展方法分配给与其在对象上的用法相匹配的委托(delegate),如下所示:staticclassFunnyExtension{publicstaticstringDouble(thisstringstr){returnstr+str;}publicstaticintDouble(thisintnum){returnnum+num;}}FuncaaMaker="a".Double;Funcdoubler=FunnyExtension.Double;Console.WriteLine(aaMaker());//Prints"aa"Console.WriteLine(doubler(

c# - 在值类型上定义的扩展方法不能用于创建委托(delegate)——为什么不呢?

可以将扩展方法分配给与其在对象上的用法相匹配的委托(delegate),如下所示:staticclassFunnyExtension{publicstaticstringDouble(thisstringstr){returnstr+str;}publicstaticintDouble(thisintnum){returnnum+num;}}FuncaaMaker="a".Double;Funcdoubler=FunnyExtension.Double;Console.WriteLine(aaMaker());//Prints"aa"Console.WriteLine(doubler(