anonymous-methods相关内容
请参阅下面的代码: 公共抽象类基地 { 公共虚拟无效美孚< T>()其中T:类 { Console.WriteLine(“基地”); } } 公共类派生:基本 { 公共覆盖无效美孚< T>() { Console.WriteLine(“导出”); } 公共无效邦() { 行动砰=新的行动(委托{base.Foo<串GT;();})
..
我不能是唯一一个累了定义和命名委托只是一些单个呼叫,需要一个委托。例如,我想叫.REFRESH()从可能的其他线程的形式,所以我写了这个代码: 私人无效RefreshForm() { 如果(InvokeRequired) 调用(新InvokeDelegate(刷新)); ,否则 刷新(); } 我甚至不确定我对,我刚读不够的害怕,它不会在一些后期工作。结果 Invo
..
我可以找到有关Func键和LT所有的例子;>和Action<>的简单在下面,你看到一个的如何他们在技术上的工作,但我想看到他们在那里他们解决以前不能得到解决或者可以在一个更复杂的方式才能解决的问题,即我知道他们是如何工作的,我可以看到他们是示例中使用的简洁而有力,所以我想了解他们,他们解决什么样的问题, 更大的意义上,我怎么能在应用程序的设计中使用它们。 以何种方式(模式)你使用Fun
..
这是合法的吗?它含有一个隐藏的错误或缺陷? Visual Studio中并没有给出任何错误或警告,但ReSharper的作用: ///<总结> ///一成不变的元组两 ///< /总结> 公共类对< TValue1,TValue2> :辛格尔顿< TValue1> { 公共TValue2值2 {搞定;私人集; } 公众对(TValue1
..
下面的方法不能编译。 Visual Studio中警告说,“out参数可能不是一个匿名方法中使用。”在 WithReaderLock(PROC动作)方法需要一个委托无效PROC()。 公共布尔TryGetValue(TKEY的关键,走出TValue值) { 布尔得到= FALSE; WithReaderLock(代表 { 获得= dictionary.TryGetValue(键,超时
..
如何通过反射识别匿名方法? 解决方案 看方法的属性,并查看是否该方法装饰着 CompilerGeneratedAttribute 。 匿名方法(以及其他的目的,例如自动实现的属性等)将具有该属性添加 例如,假设你有你的类的类型。匿名方法将是: 键入myClassType = typeof运算(MyClass的); IEnumerable的< MethodInfo
..
我有以下的code: MyClass类 { 私人代表字符串myDelegate(BJ对象);保护无效的方法() { myDelegate构建=委托(对象BJ) { 无功字母=的String.Empty; 如果(someCondition)
..
考虑一下: VAR的PropertyInfo = typeof运算(客户).GetProperty(SORTEX pressionStr); 输入订单类型= propertyinfo.PropertyType; 现在我要声明 Func键&LT; INT,订单类型&GT; 我知道它不可能直接,因为订单类型在运行时,但有什么解决方法吗? 这正是我想做的事: VAR的PropertyInfo
..
我在想,如果这个实际工作? 私人无效RegisterKeyChanged(T项) { item.OnKeyChanged + =(O,K)=&GT; ChangeItemKey((T)O,K); }私人无效UnRegisterKeyChanged(T项) { item.OnKeyChanged - =(O,K)=&GT; ChangeItemKey((T)O,K); }
..
我玩埃里克利珀的参考℃的位; T&GT; 类从
..
我希望我的措辞恰当,我的问题的称号。 在C#中我可以使用lambda表达式(作为代表),或上了年纪的委托语法来做到这一点: Func键&LT;串GT; fnHello =()=&GT; “你好”; Console.WriteLine(fnHello());FUNC&LT;串GT; fnHello2 =代表() { 返回“你好2”; }; Console.WriteLine(fnHel
..
我认为这将是很好做这样的事情(与拉姆达做产量返程): 公开的IList&LT; T&GT;查找和LT; T&GT;(防爆pression&LT;&Func键LT; T,BOOL&GT;&GT;前pression)其中T:类,新的() { IList的&LT; T&GT;表=&的GetList LT; T&GT;(); VAR乐趣=前pression.Compile(); 变
..
是否有可能从事件退订匿名方法? 如果我订阅事件是这样的: 无效的MyMethod() { Console.WriteLine(“我做到了!”); }MyEvent + =的MyMethod; 我可以取消订阅这样的: MyEvent - =的MyMethod; 但是,如果我使用订阅匿名方法: MyEvent + =代表(){Console.WriteLine(“我做到了!”)
..
在使用lambda前pressions或C#匿名方法,我们必须要警惕的的进入修改封的陷阱。例如: 的foreach(字符串中的变种S) { 查询= query.Where(ⅰ= GT; i.Prop == S); //获得修改关闭 ... } 由于修改后的关闭,上述code将导致所有的其中,条款的查询是基于取值。 由于这里解释,出现这种情况因为在的foreach 宣布上述循环被翻
..
看完我一直在试图修改code合我的胃口。我做了实现IDisposable包装在负载要求并在需要时释放它们的类。不过,我似乎无法找出语法是否可以使用匿名委托吧。 VAR加载= DynamicLibraryLoader.TryLoad(“的User32.dll”); 变种蜂鸣器= loaded.GetProcAddress(“的MessageBeep”); VAR类型= typeof运算(动作
..
随着像拉姆达EX pressions(内嵌code)的新功能的出现,是否意味着我们没有使用委托或匿名方法了吗?在几乎所有我见过的样本,它是使用新语法重写。 在任何地方,我们仍然必须使用委托和lambda EX pressions将无法正常工作? 解决方案 是有直接的地方使用匿名委托和lambda EX pressions将无法工作的地方。 如果一个方法接受一个类型化的代表则编译器不知道该怎
..
我需要从一个异步操作调用非静态方法, 为便于我使用APM设计,通过定义一个委托给它分配一个匿名方法 并呼吁BeginInvoke的就可以了。 让我吃惊我无法从我的执行引用非静态方法 任何想法,这是为什么? 公共委托无效UpdatePlayersLogin(IServerCallback回调的Guid callback_playerId,Player播放器,列表&LT; IServerCa
..
我要创建一个的BackgroundWorker 与匿名方法。 我已经写了下面的code: BackgroundWorker的BGW =新的BackgroundWorker(); bgw.DoWork + =新DoWorkEventHandler( ()=&GT; { INT I = 0; 的foreach(在query2 VAR项)
..
公共静态无效的主要(字串[] args) { 行动=()=&GT; Console.WriteLine(MethodInfo.GetCurrentMethod()名称。); 一个(); } 这code会返回一个不起眼的字符串,像这样:&lt;主&GT; b__0 有没有忽略了匿名方法,并得到一个更可读的方法名称的方式? 解决方案 您可以外捕捉到它: VAR名
..
基本上我有我使用的匿名方法我的BackgroundWorker : worker.DoWork + =(发件人,E)=&GT; { 的foreach(在GlobalGraph.Effects VAR效果) { //返回EffectResult 收益回报image.Apply(效果); } }; 当我这样做,编译器告诉我:
..