草庐IT

lambda-expression-not-expected-he

全部标签

c# - 线程和 lambda 表达式

下面两段代码有什么区别?使用第二个会有任何问题吗?场景1:privatevoidLog(Exceptione){ThreadPool.QueueUserWorkItem(newWaitCallback(Log),e);}privatevoidLog(objectobj){Exceptione=(Exception)obj;Logger.Log(e);}场景2privatevoidLog(Exceptione){ThreadPool.QueueUserWorkItem((obj)=>{Logger.Log(e);});}在场景2中,我没有将异常作为参数传递给ThreadPool。异常对象

c# - lambda 表达式语法与 LambdaExpression 类

这行代码试图将lambda表达式分配给LambaExpression类型变量,LambdaExpressionexpr=n=>n;编译失败,提示:Cannotconvertlambdaexpressiontotype'System.Linq.Expressions.LambdaExpression'becauseitisnotadelegatetype所以它需要是委托(delegate)类型。从概念上讲,这对我来说似乎很奇怪,因为我可以像这样使用工厂方法构建一个LambdaExpression实例。工厂LambdafromMSDNLambdaExpressionlambdaExpr=E

c# - SSL 网络服务 : Could not create SSL/TLS secure channel

我的C#.net应用程序正在使用HTTPS网络服务。由于证书现在即将过期,我正在尝试用我得到的新证书更新它(一个.jks文件,我使用javasdks的keytool将其转换为.p12)。我认为这很容易,因为我知道该怎么做,但它就是不合作。到目前为止我做了什么:将证书导入到CURRENT_USER\Personal导入证书到LOCAL_MACHINE\Personal给定正确的用户(apppoolidentity)通过winhttpcertcfg工具访问证书的私钥。以下是权限列表用于证书。使用findprivatekey工具,我还找到了实际的key文件,并授予apppoolidentit

c# - 等待新任务 <T>( ... ) : Task does not run?

问题的延续here:在上述问题中,我有以下函数返回一个任务类型的对象(用于增量测试目的):privatestaticTaskGetInstance(){returnnewTask((Func>)(async()=>{awaitSimpleMessage.ShowAsync("TEST");returnnewobject();}));}当我调用awaitGetInstance();时,该函数被调用(并且我假设任务已返回,因为没有抛出异常)但任务就在那里。我只能猜测我做错了。我不希望此函数返回一个已经在运行的任务(即IMPERATIVE).如何异步运行此函数返回的任务?

c# - 林克 "Could not translate expression... into SQL and could not treat it as a local expression."

我从thisquestion开始,我有点回答there,现在我在这里问更基本的问题。我已将查询简化为:varq=fromentinLinqUtils.GetTable()fromtelinent.Telephones.DefaultIfEmpty()selectnew{Name=ent.FormattedName,Tel=tel!=null?tel.FormattedNumber:""//thisiswhatcausestheerror};tel.FormattedNumber是一种将Number和Extension字段组合成格式整齐的字符串的属性。这是导致的错误:System.Inv

c# - 有没有办法将 ConcurrentDictionary.TryUpdate 与 lambda 表达式一起使用?

我有一个简单的场景,我想更新现有项目的值。只有AddOrUpdate方法提供了一个委托(delegate),我可以在其中更新旧值。但是,如果key不存在,我不想添加任何内容。还有TryUpdate方法没有重载,我可以获得旧值。有没有办法用当前的API来做到这一点?这是我要找的签名:boolTryUpdate(TKeykey,FuncupdateValueFactory) 最佳答案 您必须准备好循环并可能多次调用Func(与使用一个的GetOrAdd重载相同)。这意味着如果Func有副作用,从外部看它不会是原子的。确实,Func不应该

c# - EF lambda : The Include path expression must refer to a navigation property

这个问题在这里已经有了答案:EF:Includewithwhereclause[duplicate](5个答案)关闭5年前。这是我的表达:Coursecourse=db.Courses.Include(i=>i.Modules.Where(m=>m.IsDeleted==false).Select(s=>s.Chapters.Where(c=>c.IsDeleted==false))).Include(i=>i.Lab).Single(x=>x.Id==id);我知道原因是模块部分的Where(m=>m.IsDeleted==false),但为什么会导致错误?更重要的是,我该如何修复它

c# - 找不到部分路径 'C:\Program Files (x86)\IIS Express\~\TextFiles\ActiveUsers.txt'

我尝试了多种方法从名为TextFiles的文件夹访问我的VisualStudio2012解决方案中的文本文件using(System.IO.StreamWriterfile=newSystem.IO.StreamWriter(@"~/TextFiles/ActiveUsers.txt",true)){file.WriteLine(model.UserName.ToString());}但是一直报错Couldnotfindapartofthepath'C:\ProgramFiles(x86)\IISExpress\~\TextFiles\ActiveUsers.txt'.不知道哪里错了

c# - 在 NUnit 2.5 中使用 Lambda 作为约束?

根据CharliePoole'sNUnitblog,在NUnit2.5中可以使用Lambda表达式作为约束。我似乎无法让它工作?我正在使用NUnit2.5.3.9345。使用博文中的示例lambda:[TestFixture]publicclassClass1{[Test]publicvoidsomeTest(){int[]array={1,2,3,4};Assert.That(array,Is.All.Matches((x)=>x%4==0&&x%100!=0||x%400==0));}}编译器的结果是:“无法将lambda表达式转换为类型‘NUnit.Framework.Const

c# - 将 List.FindAll() 与 lambda 一起使用的 VB.NET 语法是什么?

在C#中,我一直在通用列表中执行FindAll,如下所示:Listtlist=list.FindAll(p=>p.parid==titem.catid);两个问题,这是执行此类操作的合适方式吗?我如何将其转换为VB.Net 最佳答案 首先,是的,这是执行此操作的适当方法,其次:DimtlistAsList(Ofgroup.category)_=list.FindAll(Function(p)p.parid=titem.catid) 关于c#-将List.FindAll()与lambda一