草庐IT

true_type

全部标签

c# - 在 C# 中,比较字符串与 null 和 ""返回 true 的最佳方法是什么

我有以下代码(因为我正在尝试检测字段的更改)if(person.State!=source.State){//updatemydata..}问题是我遇到了person.State为NULL且source.State为""并因此返回true的情况。如果一个为null而另一个为空字符串,我想将它们视为相等并且不更新我的数据。最干净的方法是什么?我是否需要创建自己的Comparer对象,因为这似乎是一个普遍的问题 最佳答案 如果你真的需要,你可以这样做:if((person.State??string.Empty)!=(source.St

c# - 打开可空 bool 值 : case goes to null when value is true

我意识到处理可空类型的正确方法是使用HasValue属性。但我想知道为什么以下switch语句会在null情况下而不是默认情况下中断。使用VS2015C#4.0。另一台使用VS2010C#4.0的计算机没有同样的问题。privatevoidTesting(){bool?boolValue=true;switch(boolValue){casenull:break;//eventhoughvalueistrue,coderunsheredefault:break;}}编辑:观察到任何Nullable的行为如果只有caseNull和default已指定。 最佳答

c# - 打开可空 bool 值 : case goes to null when value is true

我意识到处理可空类型的正确方法是使用HasValue属性。但我想知道为什么以下switch语句会在null情况下而不是默认情况下中断。使用VS2015C#4.0。另一台使用VS2010C#4.0的计算机没有同样的问题。privatevoidTesting(){bool?boolValue=true;switch(boolValue){casenull:break;//eventhoughvalueistrue,coderunsheredefault:break;}}编辑:观察到任何Nullable的行为如果只有caseNull和default已指定。 最佳答

c# - VS 2015 中的 RazorEngine 模板 - 功能 'implicitly typed local variable' 在 c# 2 中不可用

在我的VS2015项目中打开RazorEnginecshtml模板文件时出现以下错误。Feature'implicitlytypedlocalvariable'isnotavailableinc#2.Pleaseuselanguageversion3orgreater.模板编译正确,只是智能感知有问题。项目设置为在构建时使用.net4.5。该应用程序也不是ASP.Net,而是桌面应用程序。intellisense在VS2013中也能正常工作。升级到VS2015后出现此问题。有没有人有类似的问题,可以建议如何解决这个问题? 最佳答案

c# - 犀牛模拟 : How to stub a generic method to catch an anonymous type?

我们需要stub一个通用方法,该方法将使用匿名类型作为类型参数来调用。考虑:interfaceIProgressReporter{TReport(TprogressUpdater);}//Unittestarrange:FuncreturnArg=(x=>x);//wewishtoreturntheargument_reporter.Stub(x=>x.Report(null).IgnoreArguments().Do(returnArg);如果在被测方法中对.Report()的实际调用是使用对象作为类型参数完成的,那么这将起作用,但实际上,调用该方法时使用的T是匿名类型。此类型在被测

c# - "Object cannot be cast from DBNull to other types"

当我的网站执行到以下代码时,它会崩溃并出现如下异常:System.InvalidCastException:ObjectcannotbecastfromDBNulltoothertypes.为了简洁起见,我只展示了相关代码(我得到的是一个4000+LOC文件)。if(dr["STAGE"]isDBNull){dto.Stage=1;//Thisisthelinethrowingtheexception,accordingtostacktrace}else{dto.Stage=Convert.ToInt32(dr["STAGE"]);}这里,dr是一个DataRow对象,它是对数据库的查

c# - NLog LogManager.GetLogger(String, Type) 重载的目的是什么

LogManager类有两个方法:GetLogger和GetCurrentClassLogger,带有一个重载参数TypeloggerTypepublicstaticLoggerGetLogger(stringname,TypeloggerType)publicstaticLoggerGetCurrentClassLogger(TypeloggerType)文档指出loggerType是“要创建的记录器的类型”。该类型必须继承自NLog.Logger。'这种重载的目的是什么?为什么我可能需要创建继承类型的记录器? 最佳答案 如果您想

C#:ResumeLayout(true) 与 ResumeLayout(false) + PerformLayout() 的作用相同吗?

我查看了Form和UserControl生成的设计器代码,在InitializeComponent()方法中它们总是以this.SuspendLayout();结束于this.ResumeLayout(false);this.PerformLayout();但是从我在这些方法的msdn文档中看到的,不会以结尾this.ResumeLayout(true);//Orjustthis.ResumeLayout()做同样的事情?或者我在这里遗漏了什么?询问是因为我将以不同的方法添加一堆控件,并且我认为我应该执行挂起-恢复例程,这样既好又高效。但是无法弄清楚这两个方法调用的原因是什么,而您似乎

c# - 比较来自 Type.GetProperties() 和 lambda 表达式的 PropertyInfo

在创建我的测试框架时,我发现了一个奇怪的问题。我想创建一个静态类,允许我通过属性比较相同类型的对象,但有可能忽略其中的一些对象。我想为此提供一个简单流畅的API,所以调用TestEqualityComparer.Equals(first.Ignore(x=>x.Id).Ignore(y=>y.Name),second);如果给定对象在除Id和Name之外的每个属性上都相等,将返回true(不会检查它们是否相等)。这是我的代码。当然,这是一个微不足道的例子(缺少一些明显方法重载),但我想尽可能提取最简单的代码。真实案例场景有点复杂,所以我真的不想改变方法。FindProperty方法几乎

c# - 内部带有 flowlayout 面板且 autosize = true 的 Groupbox 会收缩,就像它是空的一样

我有一个包含流程布局面板的组框,流程布局面板包含一堆控件。我将flowlayout面板设置为与父级对接。因为我不知道面板中会有多少控件,所以我将组框的自动调整大小设置为true,将autosizemode设置为增长和收缩。当我这样做时,组框会缩小,就好像它是空的一样。我需要标题,所以我不能删除组框。有人知道为什么会这样吗? 最佳答案 没有什么可以阻止FlowLayoutPanel缩小到无。您至少还必须将其AutoSize属性也设置为True。 关于c#-内部带有flowlayout面板且