C#命令行语法规则

在解释操作系统命令行上给出的参数时,C# 编译器使用下列规则:

参数用空白分隔,空白可以是一个空格或制表符。

^ 字符 (^) 未被识别为转义符或者分隔符。该字符在被传递给程序中的 argv 数组前,由操作系统的命令行分析器进行处理。

无论其中是否包含空白,带双引号的字符串 ("string") 均被解释为单个参数。带引号的字符串可以嵌入在参数内。

前面有反斜杠的双引号 (/") 被解释为原义双引号字符 (")。

反斜杠按其原义解释,除非它们紧位于双引号之前。

如果偶数个反斜杠后跟双引号,则每对反斜杠中有一个反斜杠放置在 argv 数组中,而双引号被解释为字符串分隔符。

如果奇数个反斜杠后跟双引号,则每对反斜杠中有一个反斜杠放置在 argv 数组中,而双引号由剩余那个反斜杠进行“转义”。这会将双引号字符 (") 添加到 argv 中。

 

命令行示例
编译 File.cs 以产生 File.exe:
 
 
csc File.cs 


编译 File.cs 以产生 File.dll:
 
 
csc /target:library File.cs


编译 File.cs 并创建 My.exe:
 
 
csc /out:My.exe File.cs


通过使用优化和定义 DEBUG 符号,编译当前目录中的所有 C# 文件。输出为 File2.exe:
 
 
csc /define:DEBUG /optimize /out:File2.exe *.cs


编译当前目录中的所有 C# 文件,以生成 File2.dll 的调试版本。不显示任何徽标和警告:
 
 
csc /target:library /out:File2.dll /warn:0 /nologo /debug *.cs


将当前目录中的所有 C# 文件编译为 Something.xyz(一个 DLL):
 
 
csc /target:library /out:Something.xyz *.cs

 


C# 编译器和 C++ 编译器输出之间的差异作为调用 C# 编译器的结果,没有创建任何对象 (.obj) 文件;直接创建输出文件。因此,C# 编译器不需要链接器。


本文摘自: 编程十万个为什么(http://www.bcwhy.com) 详细出处请参考:http://www.bcwhy.com/thread-35-16-1.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值