草庐IT

int-vs-trunc

全部标签

c# - Roslyn vs Reflection for TypeScript 代码生成器

我正在开发一个TypeScript代码生成器,它将使用C#类上的自定义属性来生成TypeScript定义和代码文件。我正在考虑两种用于TypeScript代码生成/源文件分析的选项:对编译程序集的思考罗斯林CTP该工具将使用属性和方法的自定义特性来生成TypeScript文件。现在我不打算将C#方法体转换为JavaScript,但将来可能会这样做。因此,出于这个原因,我正在认真考虑Roslyn。然而,为了简单地生成我的TypeScript类的大纲,我认为我可以使用反射和自定义属性。我在想:a)Roslyn是否提供反射无法提供的功能?我的理解是我无法通过反射获得方法体。b)RoslynC

c# - VS 2017即时窗口显示 "Internal error in the C# compiler"

我使用VisualStudio2017(15.6.6)。调试时,我尝试在即时窗口中计算简单的表达式,如inta=2;。一个错误InternalerrorintheC#compiler被抛出。我尝试按照thisquestion中的提示启用UseManagedCompatibilityMode但它没有帮助。感谢您的帮助。 最佳答案 进一步搜索我发现thisissueonGitHub答案建议还检查UsethelegacyC#andVBexpressionevaluators。VisualStudio会发出有关选中此选项的警告,但启用此选项

c# - 更新到vs2017.3后,断点不会打了

我们有一个在Vs2017.3(从2017.2更新)上运行的asp.netcore2.0项目(从1.x迁移)。更新后,断点不再命中。vs报“当前不会命断点,源码与原版不一样”。更新迁移前一切正常。更新到2017.3之后迁移到asp.netcore2.0之前可以看到这个问题。我知道解决方法:即使源代码不同,也可以右键单击并强制命中断点。我需要一个解决方案。清理重建没有效果。该问题出现在多台计算机上。 最佳答案 我花了30分钟阅读和尝试解决方案。我的情况完全不同,解决方案非常简单。我只需要将项目更改为调试。我不知道该值如何更改为Relea

c# - Linq 和相等运算符 : Expression of type 'System.Int32' cannot be used for parameter of type 'System.Object'

我试图重写C#中的相等(==)运算符来处理任何类型与自定义类型的比较(自定义类型实际上是null周围的包装器/框)。所以我有这个:internalsealedclassNothing{publicoverrideboolEquals(objectobj){if(obj==null||objisNothing)returntrue;elsereturnfalse;}publicstaticbooloperator==(objectx,Nothingy){if((x==null||xisNothing)&&(y==null||yisNothing))returntrue;returnfal

c# - 我应该使用 int 还是 UInt16?

这可能有点微不足道,但在C#中,当在变量中存储网络端口时,您更喜欢int还是UInt16?框架类在处理网络端口时使用int,尽管UInt16实际上表示有效值。 最佳答案 signed(int/short等,而不是uint/ushort)具有作为CLS的优势合规,因此除非您有充分的理由,否则建议这样做。Reint与short-在大多数情况下,使用int(或uint),因为所有运算符都为此进行了优化。如果您只是存储和检索它,那么这当然不是问题。 关于c#-我应该使用int还是UInt16?,

c# - Async/Await VS Task.Run : When to use ? 如何使用?

好吧,我希望我掌握了async/await的基础知识,但仍有一些问题在我脑海中挥之不去。但是现在我说的就是这个问题了。假设在这个简单的例子中staticvoidMain(string[]args){Method();Console.WriteLine("MainThread");Console.ReadLine();}publicasyncstaticvoidMethod(){awaitTask.Run(newAction(LongTask));Console.WriteLine("NewThread");}publicstaticvoidLongTask(){Thread.Sleep

c# - 抛出 VS 重新抛出 : same result?

引用了网上的大量文档,尤其是关于SO的文档,例如:Whatistheproperwaytore-throwanexceptioninC#?“throwe;”之间应该有区别和“扔;”。但是,来自:http://bartdesmet.net/blogs/bart/archive/2006/03/12/3815.aspx,这段代码:usingSystem;classEx{publicstaticvoidMain(){////Firsttestrethrowingthecaughtexceptionvariable.//Console.WriteLine("Firsttest");try{Th

c# - 调试时 VS2012 的 VSIX 扩展未运行

我在VisualStudio2012中创建了一个新的VSIX扩展项目,并编写了一个MEF分类器(作为测试),它应该简单地突出显示.mylang中的所有文本。文件。以下是我的.NET4.5代码的相关部分:internalstaticclassMyLangLanguage{publicconststringContentType="mylang";publicconststringFileExtension=".mylang";[Export(typeof(ClassificationTypeDefinition))][Name(ContentType)][BaseDefinition("

c# - 如何将 IntPtr 转换为 int

窗口句柄有时是int类型,有时是IntPtrint示例:[DllImport("user32.dll")]staticexternuintGetWindowThreadProcessId(inthWnd,intProcessId);IntPtr示例:[DllImport("user32.dll",CharSet=CharSet.Auto)]staticexternIntPtrSendMessage(IntPtrhWnd,uintMsg,intwParam,StringBuilderlParam);我似乎无法从一个转换/转换为另一个。当我尝试this.ProcessID=GetWindo

c# - 如何在 VS 2017 中创建具有最小依赖性的 .NET Standard NuGet 包?

我目前正在使用VisualStudio2017迁移库项目以支持.NETStandard1.1。我希望将该项目作为单个NuGet包发布,该包可以同时针对.NETFramework4.5+和.NETCore、UWP等。但是,当我尝试在.NETFramework项目中安装生成的包时,会生成一个巨大的包依赖项列表,其中包含.NET标准中定义的所有包(见下文):我知道这些都是定义为.NETStandard1.1规范一部分的程序集。然而,我的特定项目实际上只需要其中的一小部分,这个依赖列表对于在他们的项目中安装该包的任何人来说都会非常困惑。我试图按照similarquestion的答案进行操作其中