草庐IT

A_factory_func

全部标签

c# - 如何针对集合调用 Expression<Func<Entity, bool>>

我有一个从存储库模式定义存储库的接口(interface):interfaceIRepository{ListGetAllCustomers(Expression>expression);}我已经在EntityFramework上实现了它:classEntityFrameworkRepository{publicListGetAllCustomers(Expression>expression){returnDBContext.Customers.Where(expression).ToList();}}这似乎工作得很好,它允许我做类似的事情:varcustomers=entityFr

c# - Task.Factory.FromAsync 和 BeginX/EndX 之间的区别?

在使用来自TcpClient的标准BeginRead和EndRead方法以及使用Task.Factory.FromAsync时,我有非常相似的代码。这里有一些例子..错误处理代码没有显示。Task.Factory.FromAsync:privatevoidRead(Statestate){Taskread=Task.Factory.FromAsync(state.Stream.BeginRead,state.Stream.EndRead,state.Bytes,state.BytesRead,state.Bytes.Length-state.BytesRead,state,TaskCr

c# - 表达式列表 <Func<T, TProperty>>

我正在寻找一种方法来存储Expression>的集合用于对元素进行排序,然后针对IQueryable执行存储的列表对象(底层提供者是EntityFramework)。例如,我想做这样的事情(这是伪代码):publicclassProgram{publicstaticvoidMain(string[]args){OrderClauseorderBys=newOrderClause();orderBys.AddOrderBy(u=>u.Firstname);orderBys.AddOrderBy(u=>u.Lastname);orderBys.AddOrderBy(u=>u.Age);Re

具有参数类型的 C# Func 委托(delegate)

如何在C#中获得Func表示具有此签名的方法的参数?XmlNodecreateSection(XmlDocumentdoc,paramsXmlNode[]childNodes)我尝试使用Func类型的参数但是,哦,ReSharper/VisualStudio2008疯狂地用红色突出显示它。更新:好的,谷歌搜索“c#paramsfunc”没有结果,但是“c#paramsdelegate”让我找到了thisquestion.按照JonSkeet的回答,看起来我可以创建一个delegate,说Foo,然后我的方法没有参数Func,我采用Foo类型的参数. 最佳答案

c# - 将参数传递到 Task.Factory.StartNew

给定以下代码:stringinjectedString="ReadstringoutofHttpContext";Task.Factory.StartNew(()=>{MyClassmyClass=newMyClass();myClass.Method(injectedString);}这是将字符串传递到任务/线程的最佳方式吗?我对这种方法的担忧是:垃圾收集器会知道字符串什么时候失效吗?上下文并正确清理它?有没有更好的方法将依赖项注入(inject)任务,从而打破主线程中对象的链接?这是在Asp.Net网络服务中,如果它很重要并且是一个即发即忘类型的线程,我不会等待任何类型的响应。我的

c# - 为什么 Action/Func 比 .Net 中的常规方法更好?

如果我需要一段可快速重用的代码,我更喜欢使用Action或Func,但是我团队中的其他人不喜欢或不理解它们。目前我唯一真正的争论是关于偏好和更新的代码实践,但这些只是糟糕的争论。为什么这样做更好:ActionhideControl=(form,name)=>{varbutton=form.GetControl(name);if(button!=null)button.Visible=false;}比:publicstaticvoidHideControl(thisFormViewform,stringname)whereT:Control{varbutton=form.GetContr

c# - 使用 Func<>(或 Action<>)或创建自己的委托(delegate)?

哪个更好,比如说,方法中的参数类型(与LINQ无关)。显然Func更好,因为它更简单,更具描述性,如果每个人都在使用它,一切都会变得兼容(好)。但是我注意到Microsoft在某些库中使用了自己的委托(delegate),例如事件处理程序。那么,它们各自的优点和缺点是什么?我应该什么时候使用它?编辑:显然Func仅在3.5中可用,因此这可能是我看到非Func委托(delegate)的主要原因。还有其他不使用Func的原因吗?(例如:this来自.NET4)同样的问题也适用于Action 最佳答案 Func在非常清楚它们的用途并且输入

c# - 带有未捕获异常的 Task.Factory.StartNew 会杀死 w3wp?

我刚刚将我网站的一些代码从使用QueueUserWorkItem转换为Task.Factory.StartNew我有一些错误的代码引发了异常并最终关闭了w3wp。在WindowsServer2008R2、x64上运行IIS7.5Task.Factory.StartNew(()=>{MethodThatThrowsException();}Application:w3wp.exeFrameworkVersion:v4.0.30319Description:Theprocesswasterminatedduetoanunhandledexception.ExceptionInfo:Syst

c# - 如何声明返回相同类型的 Func Delegate 的 Func Delegate?

我想编写一个方法来完成一些工作并最终返回另一个与原始方法具有相同签名的方法。这个想法是根据前一个字节值顺序处理字节流,而不用递归。通过这样调用它:MyDelegateexecuteMethod=handleFirstByte//WhatformshouldbeMyDelegate?foreach(BytemyByteinBytes){executeMethod=executeMethod(myByte);//doesstuffonbyteandreturnsthemethodtohandlethefollowingbyte}为了移交方法,我想将它们分配给Func委托(delegate)

c# - C# 中作为 Func 的操作

我有一个以Func作为参数的参数化方法SomeTypeSomeMethod(Funcf){...}我想传递一个Action而不必重载该方法。但这带来了问题,您如何将Action表示为Func?我试过了Func但它无效。 最佳答案 您可以创建一个扩展方法来包装一个Action并返回一个虚拟值:publicstaticclassActionExtensions{publicstaticFuncToFunc(thisActionact){returna=>{act(a);returndefault(T)/*ora*/;};}}Action