Board logo

标题: C#编写第三方控制台程序教程(一)。其实一切并不难。 [打印本页]

作者: xinje    时间: 2012-8-29 21:20     标题: C#编写第三方控制台程序教程(一)。其实一切并不难。

很久没有来这里了。想起来以前为大家编写第三方程序,是几年前的事情了。后来也没有时间写了。
授人与鱼不如有人与渔。这回给大家来个教程,抛砖引玉。

C#已经是.net必不可少的组成部分。那么开发控制台程序,也非常简单。但是一个visual studio太过庞大,安装也比较麻烦,可能阻碍了很多想开发第三方的朋友。所以我选用另外一个更小巧的c#编辑器:SharpDevelop。
官方下载地址:http://www.icsharpcode.net/OpenSource/SD/Download/

SharpDevelop 是非常小巧的,总共才19MB,但功能齐全。不过我认为,大家想真正写程序,还是vs比较好。这里只是给爱好者开个头。
安装比较简单。我这里不再阐述。有朋友问搜不到汉化版怎么办?不用担心,SharpDevelop本身就有中文版,不需要别人汉化。呵呵。

更改为中文:
Tools菜单中Options选项,打开,就看到熟悉的中国国旗,点一下立刻变为中文。

从这里开始,我们做一个简单的第三方程序吧!
新建工程:ctrl + shift + n
[attach]5616[/attach]
选择C#--Windows应用程序--控制台应用程序,输入自己想要的名称即可。
[attach]5617[/attach]
此时大家看到一些代码,这是已经给我们创建好的基本格式。可以按F5来测试一下。
出现了Hello World!按任意键退出。

下面,我们自己写一些代码,边熟悉C#语法,边做一个带参数的控制台模版。

先分析SharpDevelop给我们创建好的代码:
  1. namespace myProgarm  -------这是命名空间。我们不需要考虑
  2. {
  3. class Program ------主类,也不需要更改
  4. {
  5. public static void Main(string[] args)   ---public是全局修定符,static是静态修定符,void是无返回值,Main是默认的初始方法名称,括号里是参数。这些我们都不需要修改,了解就好了。
  6. {
  7. Console.WriteLine("Hello World!"); -- 在控制台输出 Hello World!的文本。
  8. // TODO: Implement Functionality Here ---带有“//”的是注解行,不会运行。
  9. Console.Write("Press any key to continue . . . ");--输出文本,并等待。
  10. Console.ReadKey(true); --按键后继续。
  11. }
  12. }
  13. }
复制代码
下面,我们修改一下Main方法(也叫函数),增加判断参数的功能:
  1. public static void Main(string[] args)
  2. {
  3.                         //for循环语句,括号中参数如下:int i = 0 声明一个整数型变量i,i可以自定义名称。i<args.Length 表明如果i小于args的内容“个数”时,args是Main的参数,类型是“字符型数组”所以有长度属性。i++ 代表 i+1,这三句之间用“分号”隔开。这样可以遍历参数数组。
  4. for(int i=0;i<args.Length;i++)
  5. {
  6.                               //switch是选择语句,参数为要判断什么。args[i]代表的是args中第i个内容。i是通过for循环不断变化的,所以,就不断的取args中不同的内容。
  7. switch(args[i])
  8. {
  9.                                        //如果是“/a”,就运行a方法。在下面可以看到我们声明的方法a;
  10. case "/a":
  11. a(args[i+1]);
  12.                                                 //必须要加break来跳出选择,否则会全部运行一遍。
  13. break;
  14.                                           //如果是/?,就运行help方法。
  15. case "/?":
  16. help();
  17. break;
  18. }
  19. }
  20. }
  21.                  //自定义方法 a,(string e)表示声明一个字符串类型的变量,名字是e
  22. private static void a(string e)
  23. {
  24.                         //在控制台输出
  25. Console.WriteLine("这是参数a:"+e);
  26. }
  27.                 //自定义方法help
  28. private static void help()
  29. {
  30.                        //这里要注意的是“\n”,这是换行符。
  31. Console.WriteLine("这是参数help:\n/a [参数] 输出参数;");
  32. }
复制代码
F5运行,发现一闪而过。没问题。看看我们的成果吧:
在你保存项目的文件夹中,找到bin\Debug。这里有个EXE文件。这就是我们的成果了 。
也可以点击按钮(如图),可以看到bin\Debug文件夹,右键菜单中可以直接打开文件夹。
[attach]5618[/attach]

下面是我写好的sharpDevelop工程。大家可以参考一下。
链接: https://pan.baidu.com/s/1PnB3NjI-dwDO7usfePPqnw?pwd=jvtv

有时间我会继续写教程的。
作者: defanive    时间: 2012-8-30 00:28

转移到第三方开发版块吧
我对.net开发第三方的态度目前是,没有类库运行不了导致实用性大大降低
而且启动速度所限不能做高频率被调用的第三方
作者: garyng    时间: 2012-8-30 00:38

有空写个用asm的教程呗
作者: Demon    时间: 2012-8-31 21:30

不知道现在.NET的装机率是多少,有10%吗?
作者: xinje    时间: 2012-9-1 13:05

回复 4# Demon
win7 已经预安装 .net3.5
xp 虽然没有预置,但是现在没有.net几乎什么都做不了。玩游戏、一些应用、甚至一些网站都无法浏览。
.net安装我认为绝对超过95%
作者: defanive    时间: 2012-10-12 06:45

回复 5# xinje
.net带来的是开发上的便利,但是对效果并没有什么特长
简单的来说,开发大工程.net舒服很多,本人也很喜欢上次在.net下开发的经验
但是本质上只是对API的封装,.net库能做的,用API也能做
而且相比携带巨大的库,纯API开发出来的优势也是明显的
.net带来的开发者的便利,对于大项目来说无可比拟
但是对于第三方这样的小东西,把LZ编译出来的exe大小和执行速度同VC++开发出来的比较一下吧
并非说.net不好,只是各有所长,第三方等开发或许.net并不在优
当然仍然非常支持这系列的文章
PS 其实我的第一个第三方是用C#开发的!C++是后来才上手的
作者: xinje    时间: 2012-10-15 00:06

回复 7# defanive
我只是觉得C#更简单一些,对于论坛里,很多人没有这方面的经验,而c#很适合初学者,仅此而已。
我也想写c++的教程,不过不是一天两天能说明白的。
我曾经在论坛发布第三方全部都是vc6的。但是就算公布源码,估计初学者很难滤清头绪,而C#我想有10天就差不多了。
作者: deveyy    时间: 2013-2-25 17:01

学习了,利用地三方,比较简单
作者: wanfcl83    时间: 2013-11-12 22:59

英文版的看不懂呀 楼主 我英语没过呢
作者: 转世燕    时间: 2015-11-28 15:47

收了慢慢学




欢迎光临 批处理之家 (http://www.bathome.net/) Powered by Discuz! 7.2