草庐IT

int-vs-trunc

全部标签

c# - C# 中的 `x is int?` 和 `x is int` 有区别吗?

classCwhereT:struct{boolM1(objecto)=>oisT;boolM2(objecto)=>oisT?;}上面的两种方法在传递null时似乎表现相同引用或盒装T值(value)。但是,生成的MSIL代码有点不同:.methodprivatehidebysiginstanceboolM1(objecto)cilmanaged{.maxstack8IL_0000:ldarg.1IL_0001:isinst!TIL_0006:ldnullIL_0007:cgt.unIL_0009:ret}对比.methodprivatehidebysiginstanceboolM2

c# - 参数 : IEnumerable vs. IList 与 IReadOnlyCollection 的最佳实践

我知道什么时候会返回IEnumerable来自方法——当延迟执行有值(value)时。并返回List或IList几乎应该只在结果要被修改时才会出现,否则我会返回一个IReadOnlyCollection,所以调用者知道他得到的不是要修改的(这使得该方法甚至可以重用来自其他调用者的对象)。但是,在参数输入方面,我不太清楚。我可以拿IEnumerable,但如果我需要多次枚举怎么办?俗话说“对发送的内容要保守,对接受的内容要自由”建议采取IEnumerable很好,但我不太确定。例如,如果以下IEnumerable中没有元素参数,通过检查.Any()可以在此方法中节省大量工作首先,这需要T

c# - 如何在 Entity Framework 中用 Enum 替换 Int 属性?

我有一个实体类,它的属性具有Int数据类型的基础db列,但实际上我希望这个属性是一个枚举。有什么方法可以指定此属性返回一个枚举吗? 最佳答案 间接地,如so.就个人而言,我将存储int保留为公共(public)(例如作为DbFoo,其中枚举属性为Foo)——这样我仍然可以针对列编写lambda表达式在数据库执行,例如:whererow.DbFoo==SomeConstant如果不公开存储值,就不能干净利落地做到这一点。您同样可以将其保留在内部,并在上下文中使用一些方法来进行过滤……这是我今天早些时候写的一个:publicIOrder

c# - 在 VS10 中调试时未命中断点

我正在处理一个C#和Silverlight项目,每隔一段时间我都会遇到一个问题,即在调试时我的断点不再命中。在编辑器中,它们没有变得透明,所以我知道正确的代码已加载并正在运行。一个例子是:我有带有getter和setter的Value,它绑定(bind)到一个控件。当我在setter中放置一个断点并从控件更改Value的值时,断点没有被击中。我知道IIS重置可以解决此问题,但我想知道原因。还有其他人发现类似的行为吗?如果有人能够指出可能的原因,我将不胜感激。 最佳答案 VisualStudio2010中有一个选项:工具->选项...

c# - 尝试加载格式不正确的程序异常会随着 VS 安装而消失

我设计了一个C#Windows应用程序,它也在内部调用一些函数[通过DllImport()从C++DLL导入]我的C++代码在Win32平台中构建为.DLL,而我的C#构建为“任何CPU”平台。当我在我的测试机器上运行.EXE(C#)时,我遇到了一个错误anattemptwasmadetoloadaprogramwithanincorrectformatexceptionfromhresult0x8007000B但是,如果我在我的机器上安装VSS2010然后运行​​EXE,则不会遇到此错误。1)此错误的原因?2)为什么安装VSS时没有观察到错误?我使用Win7操作系统(64位)在Any

c# - 从 VS 运行的 Azure 项目构建包,从命令行失败,错误 MSB4096

我有一个WindowsAzure云服务项目的解决方案,可以从VS和命令行编译得很好。如果我尝试制作一个包,它在VS中工作正常,但在命令行中失败。这是我在Powershell中的命令行:C:\Windows\Microsoft.NET\Framework\v4.0.30319\MSBuild.exe.\project.sln--%/p:Configuration="QA"/p:TargetProfile="CloudQA"/p:Platform="AnyCPU"/target:Publish/nr:false我有这个错误:"C:\CI\project\project.sln"(Publi

c# - Performans & Diagnostics - VS2013 Ultimate 中不适用的工具

我在Windows8.1Pro上使用VisualStudio2013Ultimate,并希望使用探查器分析我的Web项目的性能指标。但是Performances&DiagnosticTools部分中的许多工具都被禁用了。我想使用内存使用率和CPU使用率,但它们被列为“不适用的工具”我该如何使用这个工具??谢谢你的帮助.. 最佳答案 “可用工具”基于项目类型。ASP.NET项目只能使用性能向导工具。无法使其他工具适用于不受支持的项目类型。 关于c#-Performans&Diagnosti

c# - VS2017 扫描数据

我在VS2017中打开了一个解决方案,注意到下图显示“正在扫描数据XX%”有谁知道VS在这里做什么?有9个项目的解决方案似乎需要很长时间,其中一个是.net核心angular2应用程序。 最佳答案 似乎如果您从解决方案资源管理器调用“文件夹View”功能,它就会开始扫描神秘数据(我假设的文件夹结构)。原因未知。但是,以下thisdiscussion,我认为微软会在未来的版本中解决这个问题。我没有发现扫描数据妨碍我的任何工作,尽管它可能会稍微降低PC的速度。 关于c#-VS2017扫描数据

c# - 如果使用可为空的 int 变量,LINQ 返回 0 个结果,如果使用 "null",则返回准确的结果

我有一个名为“test”的表,它只有1列,“NullableInt”(可为空的int类型)记录为:1、2、nullint?nullableInt=null;vart=db.tests.Where(x=>x.NullableInt==null).ToList();//returns1recordvart2=db.tests.Where(x=>x.NullableInt==nullableInt).ToList();//returns0records出于某种原因,t2返回0条记录,即使它使用了值为null的“nullableInt”变量,就像t与“null”进行比较一样如有任何帮助,我们将

c# - 如何让新的异步语义在 VS2017 RC 中工作?

引自VisualStudio2017RCReleaseNotesLanguageExtensionsandAnalyzersThisreleaseincludessomeproposednewlanguageextensionsthatweareworkingonforthenextversionsofC#andVisualBasic.Thesenewlanguagefeaturesareenabledbydefaultandinclude:ForC#:Task-likereturntypesforasyncmethods:Thisintroducestheabilitytoretur