C#中Main函数中的参数有什么作用,在函数中加入参数又起到什么作用呢

如题所述

Main方法是程序的入口点,您将在那里创建对象和调用其他方法,程序控制在该方法中开始和结束。一个 C# 程序中只能有一个入口点。该方法在类或结构的内部声明。它必须为静态方法,而不应为公共方法。(它接受默认访问级别 private。)
它可以具有 void 或 int 返回类型。声明 Main 方法时既可以使用参数,也可以不使用参数,使用参数的话只能是string数组,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)
这4种Main方法都没有包含访问修饰符(如public)。即使包含访问修饰符,也会在运行时忽略它们。C#的惯例是在Main方法中忽略访问修饰符。
string数组参数的使用(例子) :
步骤1:建立一个控制台应用程序,暂且命名为Main.cs
步骤2:贴上下面这段代码。
using System;
class Program
{
static void Main(string[] args){
int argsLength = args.Length;
Console.WriteLine("Main函数参数args的长度:" + argsLength.ToString());
for (int i = 0; i < argsLength; i++)
{
Console.Write("第" + i.ToString() + "位是:");
Console.WriteLine(args[i].ToString());
}
}
}
步骤3:编译并运行Main.cs,生成Main.exe文件
步骤4:在命令行模式下输入c:\>Main a b c ,敲回车看结果
输出结果为:
Main函数参数args的长度:3
第0位是:a
第1位是:b
第2位是:c
由于参数个数是未知的,所以允许输入任意多个,也可以不输入
或者在运行之前将我们的参数设定,以便传入。在"解决方案"窗口中,右键你的项目名,选择 "属性",在弹出的新窗口中选择 "调试" ->"启动选项"->"命令行参数" 中,输入你要传入的string参数值。(多个参数之间用空格隔开)
如果不需要使用 Main 的返回值,则返回 void 可以使代码变得略微简单。但是,返回整数可使程序将状态信息与调用该可执行文件的其他程序或脚本相关。下面的示例演示使用
Main 的返回值。
class MainReturnValTest
{
static int Main()
{
//...
return 0;
}
}
由于此示例使用了批处理文件,因此最好从命令行编译这段代码,
然后,使用批处理文件调用前面的代码示例所生成的可执行文件。由于代码返回零,因此批处理文件将报告成功。但如果前面的代码更改为返回非零值,然后重新编译,则批处理
文件的后续执行将指示失败。
rem test.bat
@echo off
MainReturnValueTest
@if "%ERRORLEVEL%" == "0" goto good
:fail
echo Execution Failed
echo return value = %ERRORLEVEL%
goto end
:good
echo Execution Succeded
echo return value = %ERRORLEVEL%
goto end
:end

示例输出
Execution Succeded
return value = 0
在此示例中,使用了一个批处理文件来执行程序并测试 Main 函数的返回值。在 Windows 中执行程序时,Main 函数返回的任何值都将存储在名为 ERRORLEVEL 的环境变量中。通
过检查 ERRORLEVEL 变量,批处理文件可以确定执行的结果。通常,返回值为零指示执行成功。
温馨提示:答案为网友推荐,仅供参考
第1个回答  推荐于2017-09-21
Main方法是程序的入口点,您将在那里创建对象和调用其他方法,程序控制在该方法中开始和结束。一个 C# 程序中只能有一个入口点。该方法在类或结构的内部声明。它必须为静态方法,而不应为公共方法。(它接受默认访问级别 private。)
它可以具有 void 或 int 返回类型。声明 Main 方法时既可以使用参数,也可以不使用参数,使用参数的话只能是string数组,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)
这4种Main方法都没有包含访问修饰符(如public)。即使包含访问修饰符,也会在运行时忽略它们。C#的惯例是在Main方法中忽略访问修饰符。
string数组参数的使用(例子) :
步骤1:建立一个控制台应用程序,暂且命名为Main.cs
步骤2:贴上下面这段代码。
using System;
class Program
{
static void Main(string[] args){
int argsLength = args.Length;
Console.WriteLine("Main函数参数args的长度:" + argsLength.ToString());
for (int i = 0; i < argsLength; i++)
{
Console.Write("第" + i.ToString() + "位是:");
Console.WriteLine(args[i].ToString());
}
}
}
步骤3:编译并运行Main.cs,生成Main.exe文件
步骤4:在命令行模式下输入c:\>Main a b c ,敲回车看结果
输出结果为:
Main函数参数args的长度:3
第0位是:a
第1位是:b
第2位是:c
由于参数个数是未知的,所以允许输入任意多个,也可以不输入
或者在运行之前将我们的参数设定,以便传入。在"解决方案"窗口中,右键你的项目名,选择 "属性",在弹出的新窗口中选择 "调试" ->"启动选项"->"命令行参数" 中,输入你要传入的string参数值。(多个参数之间用空格隔开)
如果不需要使用 Main 的返回值,则返回 void 可以使代码变得略微简单。但是,返回整数可使程序将状态信息与调用该可执行文件的其他程序或脚本相关。下面的示例演示使用
Main 的返回值。
class MainReturnValTest
{
static int Main()
{
//...
return 0;
}
}
由于此示例使用了批处理文件,因此最好从命令行编译这段代码,
然后,使用批处理文件调用前面的代码示例所生成的可执行文件。由于代码返回零,因此批处理文件将报告成功。但如果前面的代码更改为返回非零值,然后重新编译,则批处理
文件的后续执行将指示失败。
rem test.bat
@echo off
MainReturnValueTest
@if "%ERRORLEVEL%" == "0" goto good
:fail
echo Execution Failed
echo return value = %ERRORLEVEL%
goto end
:good
echo Execution Succeded
echo return value = %ERRORLEVEL%
goto end
:end

示例输出
Execution Succeded
return value = 0
在此示例中,使用了一个批处理文件来执行程序并测试 Main 函数的返回值。在 Windows 中执行程序时,Main 函数返回的任何值都将存储在名为 ERRORLEVEL 的环境变量中。通
过检查 ERRORLEVEL 变量,批处理文件可以确定执行的结果。通常,返回值为零指示执行成功。
第2个回答  2011-07-21
楼上的意建和解释都是有道理的。
关于构造函数初始化:你买个新房要装修一下才会去入住;同样,你的一些变量也要对它进行一些操作才可以用(如果不做初始化,原来内存单元存的是什么是不确定的,所以如果你不写构造函数的话,编译器会有一个默认的构造函数,把所有变量赋值为0或null;不同语言会有不同),但你也可以按你自己的意思,对变量进行赋值。但构造函数可以做的不只是赋值,只要是你想它做的,都可以写到里面去;编译器会在每次执行这个类时首先去执行构造函数而已。它也没什么特别的
另外,虚机团上产品团购,超级便宜
第3个回答  2011-07-21
程序的入口点
相似回答