C#编译过程的两大特点

开发 后端
C#编译过程中编译多个源文件有两个方面的特点: 1.把所有的源文件编译成一个exe文件 2.把一些文件编译成dll,一些编译成exe 然后作为一个应用程序一起使用。

C#编译过程开始前要安装好.NET Framwork SDK环境,一般安装了vs.net工具的 都已经可以了,我们这里使用vs2005:在图中 可以看到我们进入vs2005的命令行窗体

c#编译过程

首先,我们用文本文件建一个.cs的文件 其实在C#编译过程中这个扩展名是可以自己定的,另不用.cs也是可以的,建一个文件命名为:SimpleProgram.cs 输入下面的代码

  1. usingSystem;  
  2. publicclassSimpleProgram  
  3. {  
  4. staticvoidMain()  
  5. {  
  6. Console.WriteLine(“Hello”);  
  7. Console.ReadLine();  
  8. }  

保存,注意一下大小写,然后在命令行窗口里输入:csc SimpleProgram.cs,当然我们要首先进入文件所在目录 如果编译通过,在同一个文件夹里会出现一个SimpleProgram.exe,运行 就可以看到一个控制台程序 打印出Hello.

接着我们讲编译多个源文件

编译多个源文件有几种方面:1.把所有的源文件编译成一个exe文件 2.把一些文件编译成dll,一些编译成exe 然后作为一个应用程序一起使用。

先说***个方法:做两个.cs文件

Program2.cs

  1. usingSystem  
  2. publicclassProgram2  
  3. {  
  4. staticvoidMain()  
  5. {  
  6. Personp=newPerson(“dotLive”);  
  7. Console.WriteLine(“Ourperson’  
  8. snameis“+p.Name);  
  9. }  

Person.cs

  1. usingSystem;  
  2. publicclassPerson  
  3. {  
  4. privatestringname;  
  5. publicPerson(strings)  
  6. {  
  7. name=s;  
  8. }  
  9. publicstringName  
  10. {  
  11. get{  
  12. returnname;  
  13. }  
  14. set 
  15. {  
  16. name=value;  
  17. }  
  18. }  
  19. }  

保存,命令行窗口中进入文件目录 输入:csc Program2.cs Person.cs   这个时候会在目录里生成一个exe文件,文件的名称跟***个.cs的文件名相同,如果.cs文件很多的话 还有一个简单的写法:csc *.cs 就可以把当前目录里的所有.cs文件进行编译。

现在说一下第二种方法,还是使用上面两个.cs文件

首先输入 csc /t:library Person.cs命令 这时候会生成一个Person.dll文件,然后第二步输入命令 csc Program2.cs /r:Person.dll 这样就可以生成一个引用Person.dll的exe文件Program2.exe文件。

这里出现了两个参数 /t 和 /r

/t 是指定编译生成dll还是exe,在***种方法中的命令csc *.cs 其实是一个简写,完整的写法是csc /t:exe *.cs,由于/t:exe是默认的选项可以不写, 还要说一句 这里的exe文件都是控制台应用程序(其他的以后再说)

/r 的作用可以看成是引用了一个dll文件,格式可以写成csc program.cs /r:1.dll;2.dll;3.dll

挂接多个dll,每个dll之间用分号 隔开。

接着我们再讲一个参数 /out 这个是给可执行文件命名的 比如:csc /out:MyApp.exe Program2.cs Person.cs 这样就可以生成一个叫做MyApp.exe的可执行文件。

在C#编译过程中如果有多个.cs文件中存在Main函数 要怎么办?

首先我们在Person.cs文件的Person类里添加一个Main函数

  1. usingSystem;  
  2. publicclassPerson  
  3. {  
  4. privatestringname;  
  5. publicPerson(strings)  
  6. {  
  7. name=s;  
  8. }  
  9. publicstringName  
  10. {  
  11. get{  
  12. returnname;  
  13. }  
  14. set 
  15. {  
  16. name=value;  
  17. }  
  18. }  
  19. //新增加一个Main函数  
  20. staticvoidMain()  
  21. {  
  22. Personp=newPerson(“dotLive2”);  
  23. Console.WriteLine(“Ourperson’  
  24. snameis“+p.Name);  
  25. }  
  26. }  

这样一来如果按照原来的方法同时将两个文件编译进同一个exe时,便以一定会出错

这时候我们再引入一个新的参数 /main

在我们自己决定要使用哪个cs文件里的Main函数时 可以输入命令

csc Program2.cs Person.cs /main Program2

就是制定了以Program2里的Main函数为程序入口点了。

【编辑推荐】

  1. C#中定义装箱和拆箱详解
  2. 浅谈C#类型系统
  3. 三种不同的C#异常类型
  4. 详细介绍C#编译器
  5. C#异常机制的相关解释
责任编辑:冰荷 来源: cnblogs
相关推荐

2010-05-14 10:05:17

MySQL中文乱码

2009-09-01 14:18:09

C#打开Excel文档

2009-08-21 10:17:14

C#异步网络编程

2009-08-25 17:59:49

C#入门

2011-08-10 08:55:28

项目失败

2010-05-04 14:30:45

Oracle数据

2010-04-12 10:16:55

Oracle存储过程

2009-11-30 16:55:10

微软合作Novell

2011-11-02 09:35:34

虚拟化虚拟化管理

2022-02-24 08:00:00

API混合云数据

2013-09-09 11:14:30

2009-08-13 11:18:50

C#结构体

2011-07-01 10:42:51

IIS解析漏洞

2010-04-01 09:34:06

Oracle函数

2011-08-11 09:41:38

2009-08-14 00:38:14

C#类库编译

2011-06-21 10:48:43

网络布线布线电磁

2010-07-15 14:25:06

Perl时间函数

2009-09-04 17:34:11

C#CC++

2010-07-15 09:49:23

Perl标量
点赞
收藏

51CTO技术栈公众号