【c# – 在编译时计算表达式】教程文章相关的互联网学习教程文章

C#编译器 – 未分配的DateTime字段和本地变量【代码】

出于好奇: 此代码有效并执行:public class Program {private static DateTime date;public static void Main(){Console.WriteLine(date.ToString("o"));} }看它在.NET Fiddle上工作 但这甚至没有编译(未分配的局部变量):public class Program {public static void Main(){DateTime date;Console.WriteLine(date.ToString("o"));} }看到它(不是)在.NET Fiddle工作 DateTime是一个不可为空的值类型,因此不需要将其分配和初始化为具...

使用Google Voice API编译C#.NET应用程序

因此,通过搜索互联网,我找到了一个显然工作的“谷歌语音API”.哪个好极了!我正在开发一个应用程序,它可以检测服务器进程崩溃/出错的时间,然后通过文本通知我.它真的很有用,因为服务器不是完全可靠的,有时需要重置,有时候我懒得从沙发上扯下我的屁股/忙着做别的事情. 无论如何,API: http://sourceforge.net/projects/gvoicedotnet/ 我添加了dll作为参考,所有东西都加载了intellisense.我将dll添加到我的.cs中(使用[haha]).添加完所...

有没有理由C#/ .NET编译器没有警告Dispose()?

我正在编写一些IDisposable代码时,我正在考虑这个问题. 对于开发人员来说,直接调用Dispose()或者如果对象的生命周期允许使用using构造,这是一种很好的做法. 我们需要担心的唯一实例是由于代码的机制而无法使用的实例.但是,在某些时候,我们应该在这些对象上调用Dispose(). 鉴于C#编译器知道一个对象实现了IDisposable,理论上它也可以知道Dispose()从未被调用过它(它是一个非常聪明的编译器!).它可能不知道程序员什么时候应该这样做...

c# – 编译器模糊错误不一致【代码】

在this question中,定义了以下类:public class Program {int n = 0;public void Print(){Console.WriteLine(n);}public Program(){}public Program(int num = 10){n = num;} }现在,显然由于第二个构造函数上的可选参数,使用新的Program()调用构造函数是不明确的.在阅读本文时,不清楚n是否应该用0或10初始化. 然而: 问题的实际报告似乎不一致.设置这个类并使用它我能够在C#,VB.Net和.Net 4或.Net 4.5中使用新的Program().所有测试...

c# – 当结构最终变成约束时(由于接口 – 并且编译器变得脾气暴躁)该怎么办?【代码】

编辑:我得出的结论是,不可能满足我所有的要求! 原始问题……我似乎陷入了一个不幸的困境.它归结为结构不是有效的通用约束 – 这是完全理智的,但问题出现了…… 为什么你想要将泛型约束到结构?好吧,我真的不想这样做 – 这是界面设计的结果. 我将通过完成导致我在那里的过程来解释我的困境: 假设我有一个(可能)性能关键泛型方法的接口,即:interface ISomeInterface {Result RelativeComputation(ISomeInterface other); }然而,...

c# – 在IEnumerable上使用LINQ时编译错误,但如果先将其转换为IEnumerable则不会【代码】

好的,所以我正在编写一些非常混乱的代码,因为我正在使用的库是返回动态类型层次结构.其中一些类型可以展开到动态类型列表,并使我能够在LINQ中使用这些动态对象层次结构我写了一个基本上将一些动态对象转换为IEnumerable< dynamic>的方法. 我有这个方法返回IEnumerable< dynamic>但是当我尝试将它与LINQ一起使用时,我得到错误“不能将lambda表达式用作动态调度操作的参数,而不先将其转换为委托或表达式树类型.”但是,如果我转换方法...

c# – Visual Studio Code和Visual Studio是否使用相同的编译器?

我想知道我是否可以信任Visual Studio Code使用与Visual Studio相同的标准进行编译,并避免在虚拟机上运行Visual Studio.解决方法:Visual Studio Code使用Roslyn平台(参见here).与Visual Studio 2015相同.在Linux和OS X上使用Mono编译器. IDE本身如果基本上是GitHub Atom的扩展(这很棒),当然,它甚至不会接近完整Visual Studio的强大功能.但它非常干净,易于使用.特别是新的ASP.NET 5 Web应用程序非常像Node.js / Angular / etc应用程...

什么是用于指定.net框架版本的C#编译器选项

我完全看了这两篇msdn文章C# Compiler Options Listed Alphabetically和C# Compiler Options Listed by Category中的编译器选项,用于指定可以在命令行构建中使用的目标框架版本.我知道我们可以使用supportedRuntime元素在app.config中指定框架版本. 我们是否也可以在web.config中使用此元素(配置> startup> supportedRuntime)(在asp.net应用程序的情况下)? 我只需要命令行开关就不需要这样做了.我只是因为好奇才知道这个问题而问这...

c# – 使用struct和properties时没有编译错误【代码】

考虑C#中的以下结构:public struct TestStruct {public int Number { get; set; }public TestStruct(int num){Number = num;} }我非常熟悉编译错误,如果尝试编译它会发生(this和that问题提供了一个例子). 但是,我最近注意到这样的结构在Visual Studio 2015中完美编译. 我无法找到包含上述行为的编译器的任何更改日志.任何人都可以提供任何指导,以找到这些信息的位置?我发现了类似于here的提及. 此外,有关编译器错误CS0188的页面指...

c# – Azure WebApp部署:抛出表达式导致编译器错误CS1525【代码】

我正在使用C#中的新throw表达式:_configurator = configurator ?? throw new ArgumentException(nameof(configurator));它在Visual Studio 2017中编译得很好但是当从我的版本控件(在本例中为BitBucket)部署到我的临时插槽时它失败了:Repositories\UserRepository.cs(46,45): error CS1525: Invalid expression term 'throw' [D:\home\site\repository\foo\foo.csproj]这发生在我项目的几个地方. 如何设置我的WebApp以允许编译这个...

c# – 尝试保存图像的编译错误.NET Core – 参数类型’System.IO.FileStream’的参数类型无法分配参数类型【代码】

[HttpPost]public async Task<IActionResult> Upload(string memberNumber, IFormFile file){var uploadsFolderPath = Path.Combine(_host.WebRootPath, "uploads");var fileName = Guid.NewGuid() + Path.GetExtension(file.FileName);var filePath = Path.Combine(uploadsFolderPath, fileName);using (var stream = new FileStream(filePath, FileMode.Create)){// Here's the compilation errorawait file.CopyToAsync(stream)...

c# – 使用嵌套的LambdaExpressions编译LambdaExpression时,它们是否也会编译?【代码】

在运行时构建LambdaExpression时,如果我使用LambdaExpression作为调用表达式的参数(比如使用Linq时),那么编译主lambda,嵌套的lambda是否也编译或者是否需要? 如果我将LambdaExpression用作采用Func< T,T2>的方法的参数,则代码的功能相同.或者如果我编译它并在编译的Func上使用Expression.Constant. 没编译:var selectParam = Expression.Parameter(propType, "selectParam");var selectExp = Expression.Call(typeof(System.Linq...

c# – 显式null检查与null-coalescing运算符的编译器评估?【代码】

请考虑以下代码,该代码使用两种略有不同的方法来检查_instance并在尚未设置时分配它.class InstantiationTest {private Object _instance;public void Method1() {if(_instance == null) {_instance = new Object();}}public void Method2() {_instance = _instance ?? new Object();} }VS或Resharper不断为我的显式空检查加下划线,并提示我使用null-coalescing运算符进行重构. 我想知道编译器是否足够智能来检测Method2()中的情况...

编译没有VS的C#项目

我计划使用Sublime Text 2作为C#/ Java项目的代码源编辑器,我不想安装Visual Studio,所以我可以从CLI编译C#项目吗?解决方法:MSBuild是Visual Studio使用的构建系统 – 您可以将它直接用于解决方案和项目文件,因为它们是msbuild文件. 它附带.NET可再发行的下载. 请注意,对于许多类型的解决方案,您需要安装辅助工具(例如,如果您正在进行任何资源生成,则使用resgen).

在MVC C#中关闭html条件编译【代码】

我写了这个函数<script type="text/javascript">function saveDelivery() {alert("tttt")var model = @Html.Raw(Json.Encode(Model)); //errror$.ajax({type: 'POST',url: '@Url.Action("SaveDelivery", "Business")',contentType: 'application/json; charset=utf-8',data: JSON.serialize(model),success: function (result) { },error: function (xhr, ajaxOptions, thrownError) {alert(xhr....