【C#编译器对语言进行了哪些扩展?】教程文章相关的互联网学习教程文章

CSC.exe(C#编译器命令行)【代码】

不要在普通的命令行窗口中编译,请先打开C:\ProgramData\Microsoft\Windows\Start Menu\Programs\Microsoft Visual Studio 2010\Visual Studio Tools路径下的Visual Studio 命令提示(2010),在该窗口中输入命令。C#编译器 命令行csc.exe @响应文件(eg.D:\Temp\Demo.rsp)/out:生成文件名(若未指定路径,默认生成到C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC路径下,后缀对应/t)/t[arget]:exe(exe-CUI应用程序;wi...

C#复习笔记(4)--C#3:革新写代码的方式(用智能的编译器来防错)【代码】【图】

用智能的编译器来防错本章的主要内容:自动实现的属性:编写由字段直接支持的简单属性, 不再显得臃肿不堪;隐式类型的局部变量:根据初始值推断类型,简化局部变量的声明;对象和集合初始化程序:用一个表达式就能创建和初始化对象;隐式类型的数组:根据内容推断数组的类型,从而简化数组的创建过程;匿名类型:允许创建新的临时类型来包含简单的属性;自动实现的属性这个特性简单的我都不想描述,但是为了保持内容的完整性,放一...

如何在Visual Studio中选择C++和C#的编译器版本

博客搬到了fresky.github.io - Dawei XU,请各位看官挪步。最新的一篇是:如何在Visual Studio中选择C++和C#的编译器版本。原文:http://www.cnblogs.com/fresky/p/5522097.html

如何利用C# Roslyn编译器写一个简单的代码提示/错误检查?【图】

OK, 废话不多说,这些天在写C#代码时突然对于IDE提示有了一些想法,之前也有了解过,不过并没有深入。先看个截图: 一段再简单不过的代码了,大家注意看到 count 字段下面的绿色波浪线了吗,我们通常为理解一个 warning ,鼠标移上去: 提示“声明了该字段但没有使用过” 当然,这对项目代码编译没有什么影响。不过,我想了一下,如果我们可以重写IDE的编译器,把我们的一些规则写进去,对于团队的代码review其实是很高效的一件...

c# – typescript编译器可以生成POCO .NET类型/程序集吗?

我正在使用MVC和EF的淘汰赛进入应用程序开发,我正在研究如何在配方中添加TypeScript可能会帮助我. 我喜欢在IDE中创作的更清晰的机制,但缺少的东西似乎是能够从其他.NET程序集引用typescript中定义的接口. 我是对的,除了尚未完成之外没有什么可以阻止这种情况发生吗?我很好奇是否需要它,或者我是否以其他人不是的方式查看问题域. 我看到实用程序的原因是因为目前我无法在一个地方定义给定的DTO.我必须在我的C#View模型和javascript...

c# – 如果声明是接口,编译器不会识别泛型中的属性【代码】

看看以下演示Visual Studio 2017编译器的问题public interface IFoo {string Key { get; set; } }public class Foo : IFoo {public string Key { get; set; } }class Program {static void Main(string[] args){PrintFoo(new Foo() { Key = "Hello World" });Console.ReadLine();}private static void PrintFoo<T>(T foo) where T : IFoo{//set breakpoint here and try to look at foo.KeyConsole.WriteLine(foo.Key);} }当我在Pr...

c# – 编译器中的错误还是误解?或短裤上的运算符【代码】

参见英文答案 > Bitwise-or operator used on a sign-extended operand in Visual Studio 2015 2个我有一行代码在VS2015中给我一个警告信息(CS0675),但在2013年没有.shortValue |= (short)anEnum;Warning CS0675 Bitwise-or operator used on a sign-extended operand;consider casting to a smaller unsigned type first. The compilerimplicitly widened and sign-extended a variable, a...

C#编译器能否在编译时插入在每次使用时自动递增的常量值?【代码】

有没有办法让C#编译器插入在编译时自动递增的常量值? 例如.MyFunc(NEXT_CONSTANT); MyFunc(NEXT_CONSTANT); MyFunc(NEXT_CONSTANT);将产生此代码:MyFunc(1);MyFunc(2);MyFunc(3);解决方法:不,没有什么语言可以做到这一点. 有一些怪异的技巧可让您跟踪调用方文件/线路/成员,并基于此自动增量(如果您使用的是C#5)-但这并不是完全一样的. 有一些基于工具的方法可以改变您的源代码-但我会尝试退后一步,看看您的实际需求和意图(目前尚...

c# – 缺少编译器所需的成员’System.Runtime.CompilerServices.ExtensionAttribute..ctor’

我有一个针对.Net 4.0的项目.它曾经建立到昨天.我查看了代码并引用了程序集.我可以看到定义了Extension属性.任何人都有任何线索. 我提到了以下问题但没有帮助 – “Missing compiler required member” error being thrown multiple times with almost no changes to code *更新1:*我看到Npgsql在同一名称空间中定义了ExtensionAttribute.当我删除并添加旧版本的Npgsql时,它就构建了.我该怎么做才能使用最新的Npgsql?解决方法:这...

使用.NET命令行编译器编译项目(如ASP.NET、C#等)【代码】【图】

源程序最好有.csproj或.vbproj文件,没有的话,要花些时间调试 下面我以VB.NET做示例讲解一下: 从proj我们可以获取以下有用信息 Settings小节中有很多配置选项,对应一些编译器选项 <References>小节中是项目的引用,第3方类库最好用绝对路径 <Imports>小节中是要导入的一些命名空间 <Files>小节中有项目的所有文件,选取 BuildAction = "Compile"的文件 用vbc测试了一下,很容易,注意以下几项: rootnamespace reference target...

c#的string --> 一个被编译器做特殊处理的引用类型

String的不变性 C#里string对象是不变对象(只读),因为一旦创建了该对象,就不能修改该对象的值。有的时候看来似乎修改了,实际是string经过了特殊处理,每次改变值时都会建立一个新的string对象,变量会指向这个新的对象,而原来的还是指向原来的对象 假设有string str1="abc";那么如果存在有这么一条语句对str1进行再次赋值?如str1="123",那么,此时指向str1的栈的地址并未发生改变,而是在托管堆里重新创建一个新的对象,其值...

C#debug技巧和反编译器

学到这里,我们暂且休息一下吧,这里我们学习一下程序调试的技巧。 我曾经记得,我刚刚从事工业控制行业的时候,师傅带我去现场调试,当时刚毕业,真的是两眼一抹黑,啥也不知道。当时设备出现了问题,需要调试PLC程序, 找到问题发生在了哪里,查明到底是哪个传感器没触发,还是程序bug,抑或是其他一些原因,看着师傅在程序中,交互来交互去,看的我眼花缭乱,不知所谓。 随着后来工作年限的增加,监控程序也成了家常便饭。这也类...

错误:“没有C#语言编译器”【代码】

我于2003年创建的ASP.NET/C#项目已经在大学服务器上运行了10多年,但是我刚刚得知服务器崩溃了,他们正在尝试重新设置一切. 他们收到以下错误. 我在底部看到似乎他们已经在Debian机器上安装了Mono.可能是他们安装了Mono,但却忘记了安装C#编译器,或者此消息是否暗示其他错误? 什么可能是此错误的原因和解决方案?解决方法:根据Mono中的BuildManager代码:if (configSection == null)config = WebConfigurationManager.GetWebApplicat...

c#-基于编译器开关引用.NET程序集

我需要基于一些编译器开关(如#ifdirective)在c#项目中添加对另一个程序集的引用.例如,我只想在需要时在项目中添加对记录器DLL的引用.这可能吗?解决方法:据我所知,根本不使用的引用程序集不是问题.您甚至可以保留它作为参考. 只要您的代码不触发程序集的加载,就不需要该文件可用. 我建议您检查是否确实需要此功能,以及是否可以通过创建接口并动态加载程序集(使用Assembly.LoadFrom)来解决此问题.

编译器无法识别System.Runtime.Serialization.DataContractSerializer C#

我尝试使用System.Runtime.Serialization.DataContractSerializer,但出现编译器错误:“The type or namespace ‘DataContractSerializer’ does not exist in the namespace ‘System.Runtime.Serialization’ “是什么导致此错误?解决方法:在您的项目中添加对System.Runtime.Serialization程序集的引用.