标题:求教:Main()函数 - 其命令行参数 - 返回值
只看楼主
learnerok
Rank: 2
等 级:论坛游民
帖 子:387
专家分:47
注 册:2011-5-21
结帖率:91.67%
已结贴  问题点数:20 回复次数:16 
求教:Main()函数 - 其命令行参数 - 返回值
求教:Main()函数 - 其命令行参数 - 返回值

已经查阅了msdn 及 网上搜到的解释,但几天来仍没搞明白。还要求教本坛的崇高热心的老师们啊。

我的问题是:

1.    public static void Main(string[] args)
括号里面的“string[] args”是可有可无吗?
有和没有对程序产生影响的区别是什么?

2.    什么是“命令行参数”?
什么是“命令行”?(是函数(或方法)所在的行吗?)
什么是“命令行参数”?(是一个线程上的函数(或方法)的行的总数量吗?)

3.    网上的解释说main()的参数可以获得命令行的长度。
但是又说,main()也可以没有参数,也就是说不用获得命令行的长度?
一般来说,函数的参数不都是程序员定义给出吗,怎么main()是为了获取?

4.    main()的“返回值”,网上说可以有也可以没有,如果有,则应为int类型, return 1 为运行正常,return -1 为运行异常。
什么情况下应该有“返回值”,什么情况下不应该有呢?
这个“返回值”是针对“string[] args”参数吗?
“返回值” 和 “参数”的关系?
main()“返回值”只能是两个值吗?(return 1 为运行正常,return -1 为运行异常)?

5.    main()的类型
什么情况下用void?
什么情况下用int?


期待热心的老师指导啊,在下先拜谢了!!!
搜索更多相关主题的帖子: 函数 void public 网上 
2012-02-09 12:21
wangnannan
Rank: 18Rank: 18Rank: 18Rank: 18Rank: 18
等 级:贵宾
威 望:87
帖 子:2545
专家分:9359
注 册:2007-11-3
得分:15 

括号里面的“string[] args”是可有可无吗? 可以
Main方法一共有以下四种形式
1.没有参数 返回值为void        static void Main()
2.没有参数返回值为int             static int Main()
3.带有参数返回值为void          static void Main(string[] args)
4.带有参数返回值为int           static int Main(string[] args)

有和没有对程序产生影响的区别是什么?
区别就是返回值不同 程序的入口点 看你要做哪些操作了
类型为int,来说明自己的执行情况.
int返回类型的main函数是标准的main函数,最后根据执行结果向操作系统返回结果代码.
void类型的main函数就是不返回任何东西的非标准main函数类型.

命令行参数 换句话说,就是以命令行方式运行程序时所带参数
借用红皮书的例子 比方说我们打开一个记事本
1 双击执行文件可以打开
2 开始 运行 输入notepad 也可以打开 notepad可以理解为命令行参数

LZ说的其他的 至于命令行什么的  多了解下csc吧
main()就是程序入口点 其他的个人理解为只要了解这些就足够了 有时间多学学实现项目开发经验不是更好 像MAIN这类的
公司开发中都已经是封装好的

[ 本帖最后由 wangnannan 于 2012-2-9 13:29 编辑 ]

出来混,谁不都要拼命的嘛。 。拼不赢?那就看谁倒霉了。 。有机会也要看谁下手快,快的就能赢,慢。 。狗屎你都抢不到。 。还说什么拼命?
2012-02-09 13:26
learnerok
Rank: 2
等 级:论坛游民
帖 子:387
专家分:47
注 册:2011-5-21
得分:0 
感谢 wangnannan 老师的回复指导!

由于本人刚刚学习c#,又愚笨,所以还请多多关照按我的问题顺序一个一个地接到。否则偶又要周旋费解纠结了哈。

网上解释基本上与您的差不多,但还是没搞明白。

我想搞明白main()上的问题,否则编程忙活半天后在main()上出错多窝心啊。没搞明白这个最基本的main()上的问题,往下学习没自信啊。
2012-02-09 14:50
learnerok
Rank: 2
等 级:论坛游民
帖 子:387
专家分:47
注 册:2011-5-21
得分:0 
命令行参数 换句话说,就是以命令行方式运行程序时所带参数
借用红皮书的例子 比方说我们打开一个记事本
1 双击执行文件可以打开
2 开始 运行 输入notepad 也可以打开 notepad可以理解为命令行参数
-------------------------------------

什么是“命令行”(是函数(或方法)所在的行吗?)?
2012-02-09 15:05
BigPei
Rank: 3Rank: 3
来 自:苏州
等 级:论坛游侠
威 望:6
帖 子:43
专家分:161
注 册:2012-1-10
得分:3 
命令行参数是我们运行程序时,在运行程序之后加的参数。
D:\PWAS\Tools\PrototypeMigrationTool\BatchJob\JobExecutor\JobExecutor.exe  GetAllFilesHistory
比如GetAllFilesHistory就是所谓的命令行参数了

Fighting forever.
2012-02-09 15:10
learnerok
Rank: 2
等 级:论坛游民
帖 子:387
专家分:47
注 册:2011-5-21
得分:0 
以下是引用BigPei在2012-2-9 15:10:05的发言:

命令行参数是我们运行程序时,在运行程序之后加的参数。
D:\PWAS\Tools\PrototypeMigrationTool\BatchJob\JobExecutor\JobExecutor.exe  GetAllFilesHistory
比如GetAllFilesHistory就是所谓的命令行参数了
感谢 BigPei 老师的回复指导!

求问“命令行参数”是如何加上去的, 程序员如何处理呢?

[ 本帖最后由 learnerok 于 2012-2-9 15:26 编辑 ]
2012-02-09 15:23
learnerok
Rank: 2
等 级:论坛游民
帖 子:387
专家分:47
注 册:2011-5-21
得分:0 
百度上说:
命令行就是在windows下面使用DOS 打开方法是在开始菜单中找到运行输入“CMD”或者conmmand就可以了
也就是说,“命令行”就是dos命令?
2012-02-09 15:27
wangnannan
Rank: 18Rank: 18Rank: 18Rank: 18Rank: 18
等 级:贵宾
威 望:87
帖 子:2545
专家分:9359
注 册:2007-11-3
得分:0 
回复 3楼 learnerok
LZ的钻研精神让人佩服

出来混,谁不都要拼命的嘛。 。拼不赢?那就看谁倒霉了。 。有机会也要看谁下手快,快的就能赢,慢。 。狗屎你都抢不到。 。还说什么拼命?
2012-02-09 15:34
learnerok
Rank: 2
等 级:论坛游民
帖 子:387
专家分:47
注 册:2011-5-21
得分:0 
以下是引用wangnannan在2012-2-9 15:34:07的发言:

LZ的钻研精神让人佩服
搞不通,如何往下学习呢?被逼的呀,呜呜!!
2012-02-09 15:37
BigPei
Rank: 3Rank: 3
来 自:苏州
等 级:论坛游侠
威 望:6
帖 子:43
专家分:161
注 册:2012-1-10
得分:2 
回复 6楼 learnerok
老师不敢当...

比如程序入口这么写:
public static void Main(string[] args)
{
   string s = args[0];
}

这个时候,就使用了所谓的命令行的参数。这个时候在运行程序的时候,如果不加参数,程序就会报错。


Fighting forever.
2012-02-09 15:51



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-360636-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.066563 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved