草庐IT

c# - 如何告诉 lambda 函数捕获副本而不是 C# 中的引用?

我一直在学习C#,并且正在努力理解lambda。在下面的示例中,它打印了10十次。classProgram{delegatevoidAction();staticvoidMain(string[]args){Listactions=newList();for(inti=0;iConsole.WriteLine(i));foreach(Actionainactions)a();}}显然,在lambda后面生成的类存储了一个指向inti变量的引用或指针,并在每次循环迭代时为同一个引用分配一个新值。有没有办法强制lamda获取一个副本,就像C++0x语法一样[&](){...}//Captu

c# - 是否可以告诉 Visual Studio 不要将源文件视为 "component"?

这个问题在这里已经有了答案:关闭10年前。PossibleDuplicate:IsthereanattributeIcanaddtoaclasssoitwillbeeditedascode,notinthedesigner?继承路径上带有System.ComponentModel.Component的类在VisualStudio(2008)中被自动视为“组件”,触发源文件的不同图标:虽然图标并不重要,但更改后的双击行为确实令人讨厌:VisualStudio现在显示一个屏幕,鼓励我将组件添加到我的类中,方法是将它们“从”工具箱”。我不想那样做!我知道我可以右键单击源文件并选择“查看代码”

c# - 如何告诉 Fluent NHibernate 不要映射类属性

我有一个在fluentnhibernate中映射的类,但我希望映射忽略其中一个类属性。使用下面的类和映射我得到这个错误:以下类型不能用作代理:iMasterengine.Data.Model.Calendar:get_HasEvents方法应该是虚拟的//myclasspublicclassCalendar:IEntity{publicvirtualintId{get;privateset;}publicvirtualstringName{get;set;}publicvirtualstringSiteId{get;set;}publicvirtualIListEvents{get;s

c# - 有没有办法标记代码以告诉 ReSharper 不要格式化它?

我经常使用ReSharper“CleanUpCode”命令将我的代码格式化为我们的编码风格,然后再将其checkin源代码管理。这在一般情况下效果很好,但有些代码最好手动格式化(例如,由于ReSharper中的缩进规则,链式linq方法或多行三元运算符之类的东西有一个奇怪的缩进,将它们推到右边)。有什么方法可以标记文件的某些部分以告诉ReSharper不要格式化该区域?我希望有某种类似于ReSharper抑制其他警告/功能的标记。如果没有,是否有某种方法可以更改设置组合以使ReSharper正确设置缩进格式?编辑:我找到了this来自ReSharper论坛的帖子说生成的代码部分(如Re

c# - 我如何告诉数据注释验证器也验证复杂的子属性?

我可以在验证父对象时自动验证复杂的子对象并将结果包含在填充的ICollection中吗??如果我运行以下代码:usingSystem;usingSystem.Collections.Generic;usingSystem.ComponentModel.DataAnnotations;namespaceConsoleApplication1{publicclassPerson{[Required]publicstringName{get;set;}publicAddressAddress{get;set;}}publicclassAddress{[Required]publicstrin

c# - 告诉 StructureMap 使用特定的构造函数

我有两个服务需要XPathDocument。我希望能够定义XPathDocumnet的命名实例,以便在两个服务的配置中使用。我还希望能够告诉StuctureMap使用XPathDocument的哪个构造函数。当我尝试获取XPathDocument的实例时,它告诉我找不到XmlReader的插入类型。我想使用需要xml文件的字符串uri的构造函数。我似乎无法让它工作。这是StructureMap配置代码。publicclassService1:IService1{publicService1(XPathDocumentdocument){}}publicclassService2:ISe

c# - 是否有一个我可以在我的类中使用的属性来告诉 DataGridView 在绑定(bind)到 List<MyClass> 时不要为其创建列

我有这样一个类:privateclassMyClass{[DisplayName("Foo/Bar")]publicstringFooBar{get;privateset;}publicstringBaz{get;privateset;}publicboolEnabled;}当我创建List并将其分配给DataSource的DataGridView,网格显示两列,“Foo/Bar”和“Baz”。这就是我想要发生的事情。它目前有效,因为Enabled是一个字段,而不是一个属性-DataGridView只会选择属性。然而,这是一个肮脏的hack。我也想使Enabled成为属性,但仍将其隐藏

c# - 为什么 Visual Studio 告诉我未定义 AddJsonFile() 方法?

我正在使用VSUltimate2015Preview开发一个ASP.NET5WebAPI项目。我正在尝试以这种方式配置应用程序(行号只是指南):1usingMicrosoft.Framework.ConfigurationModel;23publicIConfigurationConfiguration{get;privateset;}45publicStartup()6{7Configuration=newConfiguration()8.AddJsonFile("config.json")9.AddEnvironmentVariables();10}第8行给我一个错误:'Confi

c# - 为什么 ReSharper 告诉我 "implicitly captured closure"?

我有以下代码:publicdoubleCalculateDailyProjectPullForceMax(DateTimedate,stringstart=null,stringend=null){Log("CalculatingDailyPullForceMax...");varpullForceList=start==null?_pullForce.Where((t,i)=>_date[i]==date).ToList()//implicitlycapturedclosure:end,start:_pullForce.Where((t,i)=>_date[i]==date&&Dat

javascript - 有没有办法告诉 knockout 等到定义 View 模型后再重新计算计算值?

我有一个复杂的View模型,它是几百行javascript代码,具有大量可观察属性、计算可观察属性、可写计算可观察属性和函数。所以管理这个是一个相当大的挑战。我不得不处理的一个烦人的问题是计算的可观察量在您定义它时立即计算出来。因此,在定义可观察对象时使用尚未在View模型中定义的变量会导致错误,指出该变量尚未定义。它是...就在文件的后面。这是一个人为的例子:functionViewModel1​(args){varself=this;self.firstName=ko.observable(args.firstName);self.lastName=ko.observable(ar