草庐IT

lambda-expression-not-expected-he

全部标签

c# - 事件处理程序和匿名委托(delegate)/Lambda 表达式

我希望通过使用匿名委托(delegate)和lambda表达式来为C#中的事件处理程序创建方法来解决一些问题,至少对我自己而言。假设我们有一个添加匿名委托(delegate)或lambda表达式的事件(对于可以使用较新版本.NET的幸运人群)。SomeClass.SomeEvent+=delegate(objecto,EventArge){/*dosomething*/};我读到,过去的人们已经忘记了仍然有处理程序阻止类被垃圾收集的事件。如果不在类中将SomeEvent设置为null,将如何删除添加的处理程序。以下不是一个全新的处理程序吗?SomeClass.SomeEvent-=de

c# - NHibernate - KeyNotFoundException : The given key was not present in the dictionary

更新:我已经解决了这个问题我有下面的代码块,它最终应该更新一条记录if(session.Contains(entity)){session.Evict(entity);}Session.Evict(entity)上的哪些错误带有KeyNotFoundException,以及以下消息:Thegivenkeywasnotpresentinthedictionary.我是不是误会了什么?我假设如果session.Contains(entity)为真,那么key应该存在,因此session.Evict()应该按预期工作?堆栈轨迹如下:System.Collections.Generic.Key

c# - 使用 lambda 表达式时,c# 中的闭包如何工作?

进入以下教程:http://www.albahari.com/threading/他们说下面的代码:for(inti=0;iConsole.Write(i)).Start();是不确定的,可以产生以下答案:0223557799我认为当使用lambda表达式时,编译器会创建某种匿名类,通过在捕获类中创建类似成员来捕获正在使用的变量。但是i是值类型,所以我觉得他应该是按值复制。我哪里错了?如果答案能够解释闭包是如何工作的,它如何保存指向特定int的“指针”,在这种特定情况下会生成什么代码,那将非常有帮助? 最佳答案 这里的关键点是闭包关

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

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

c# - Expression<TDelegate>.Compile 和垃圾收集

当我将表达式编译成可执行代码并获取委托(delegate)时-如果不再存在对该委托(delegate)的引用,代码是否会被垃圾收集?有这方面的文档吗?因为我在MSDN中没有找到任何有用的东西。 最佳答案 是的,代码可以被垃圾回收。当您对T的表达式调用编译时,代码将编译为DynamicMethod,并且那些有资格进行垃圾收集。确实在MSDN上没有说明,但您可以查看DLR中Expression.Compile的实现,这是.net4.0附带的内容:http://dlr.codeplex.com/SourceControl/changese

c# - visual studio Express 2013 是否自带 blend,如何打开它?

我今天已经找了一段时间了,我没有找到任何关于它的东西,有很多关于visualstudio2013的blend,但是它是否带有桌面的express版本,如果有怎么办我访问它或下载它。谢谢 最佳答案 Blend不随VisualStudio2013Express提供。 关于c#-visualstudioExpress2013是否自带blend,如何打开它?,我们在StackOverflow上找到一个类似的问题: https://stackoverflow.com/q

c# - Expression.Variable() 和 Expression.Parameter() 有什么区别?

两者似乎都返回相同的类型,并且具有相同的签名。那么它们之间有什么区别,我们应该在什么时候使用它们? 最佳答案 Expression.Variable用于在block中声明局部变量。Expression.Parameter用于声明传入值的参数。目前C#不允许使用语句主体的lambda表达式,但如果它允许,想象一下://Notcurrentlyvalid,admittedly...Expression>foo=x=>{inty=DateTime.Now.Hour;returnx+y;};如果此有效,C#编译器将使用Expression.

c# - ASP.NET/C# : DropDownList SelectedIndexChanged in server control not firing

我正在创建一个基本上绑定(bind)两个下拉列表的服务器控件,一个用于国家/地区,一个用于州,并在国家/地区的selectedindexchanged事件上更新州下拉列表。但是,它不会回发。任何想法为什么?将它们包装在UpdatePanel中的奖励积分(有渲染问题;可能是因为我没有要引用的页面?)这是我所拥有的(删除了一些额外的数据访问内容):publicclassStateProv:WebControl{publicstringSelectedCountry;publicstringSelectedState;privateDropDownListddlCountries=newDr

c# - MVC 全局错误处理 : Application_Error not firing

我正在尝试在我的MVC应用程序中实现全局错误处理。我的Application_Error中有一些逻辑重定向到ErrorController但它不起作用。我在Global.aspx的Application_Error方法中有一个断点。当我强制异常时,断点没有被击中。有什么想法吗? 最佳答案 您可以尝试使用这种方法进行测试:protectedvoidApplication_Error(objectsender,EventArgse){varerror=Server.GetLastError();Server.ClearError();R

c# - 如何在不安装 SQL Server Express Edition 的情况下在 Visual Studio 中添加 SQL Server 数据库文件 (.mdf)?

在VisualStudio2010项目中添加.mdf文件(SQLServer数据库)时出现以下错误ConnectionstoSQLServerdatabasefiles(.mdf)requireSQLServer2005ExpressorSQLServer2008Expresstobeinstalledandrunningonthelocalcomputer我不想安装SQLServerExpress(2005/2008)因为我已经安装了SQLServer2005企业版我正在使用VisualStudio2010Ultimate 最佳答案