2018-01-15 22:10:59


 一、Main()方法的简介

1、唯一性。一般情况下,一个C#可执行程序只有一个Main函数,作为程序入口。但是在某些情况(如单元测试中),程序拥有多个Main函数,,这个时候我们就需要通过命令行指定以哪个Main()方法作为程序的唯一入口。

2、静态性。Main()方法通过static修饰,这个主要是让我们可以通过类名加方法的形式调用Main()方法,使得我们不需要创建对象的实例(即new出该对象)而直接调用Main函数。使用静态static修饰符的原因:

3、Main的参数。分析Main()方法的参数是一个字符串(string[] args),这个参数可以包含任意数量的命令行输入参数。

4、Main函数的修饰符。一般不加修饰符,默认为private,但可以public修饰符,但编译器在编译时会设置为priavte。

二、Main()方法为什么使用static修饰

假设没有static关键字,那意味着需要用生成一个实例后才可以调用这个Main方法,而Main方法是程序入口点,你没有进入Main方法,自然无法生成一个实例,既然没有实例,那就无法调用Main函数,岂不矛盾?所以Main函数被设置为static。直接通过类名加方法的形式调用Main()方法,使得我们不需要创建对象的实例(即new出该对象)而直接调用Main函数。

三、Main()方法的四种形式

1、无返回值,以字符串数组作为参数

 class Program
{
static void Main(string[] args)
{
}
}

2、无返回值,无参数

   class Program
{
static void Main()
{
}
}

3、返回int类型数值,以字符串数组作为参数

  class Program
{
static int Main()
{ return ;//返回整数0(0:表示没有出现异常情况正常返回;其他值(非0),表示主函数执行过程中的异常情况。)
}
}

4、返回int类型数值,无参数

   class Program
{
static int Main(string[] args)
{
return ;//返回整数0(0:表示没有出现异常情况正常返回;其他值(非0),表示主函数执行过程中的异常情况。)
}
}

四、Main()的参数string[] args的含义

args是用来处理命令行参数的。命令行参数,就是你运行这个程序的时候给它传的参数。它是可选项,不是必须的。具体使用如下:

1:编写如下程序

  class Program
{
static void Main(string[] args)
{
foreach (string str in args)
{
Console.WriteLine("Main函数传递的参数args:{0}", str);
}
Console.ReadKey();
}
}

2:编译完成该程序后,在Debug文件中找到该.exe文件,复制到桌面,再复制路径+文件名,然后在命令行模式下输入“C:\Users\dwa1124\Desktop\Test aa bb cc”。运行后我们发现:

C# Main函数详解的更多相关文章

  1. Linux C popen()函数详解

    表头文件 #include<stdio.h> 定义函数 FILE * popen( const char * command,const char * type); 函数说明 popen( ...

  2. memset函数详解

    语言中memset函数详解(2011-11-16 21:11:02)转载▼标签: 杂谈 分类: 工具相关  功 能: 将s所指向的某一块内存中的每个字节的内容全部设置为ch指定的ASCII值, 块的大 ...

  3. fork()函数详解

    linux中fork()函数详解(原创!!实例讲解) (转载)    一.fork入门知识 一个进程,包括代码.数据和分配给进程的资源.fork()函数通过系统调用创建一个与原来进程几乎完全相同的进程 ...

  4. Linux环境fork()函数详解

    Linux环境fork()函数详解 引言 先来看一段代码吧, 1 #include <sys/types.h> 2 #include <unistd.h> 3 #include ...

  5. pthread_once()函数详解

    转自:pthread_once()函数详解 pthread_once()函数详解   在多线程环境中,有些事仅需要执行一次.通常当初始化应用程序时,可以比较容易地将其放在main函数中.但当你写一个库 ...

  6. c/c++ 标准库 bind 函数 详解

    标准库 bind 函数 详解 bind函数:接收一个函数名作为参数,生成一个新的函数. auto newCallable = bind(callbale, arg_list); arg_list中的参 ...

  7. linux的system () 函数详解

    linux的system () 函数详解     system(执行shell 命令)相关函数        fork,execve,waitpid,popen表头文件        #i nclud ...

  8. linux select函数详解

    linux select函数详解 在Linux中,我们可以使用select函数实现I/O端口的复用,传递给 select函数的参数会告诉内核: •我们所关心的文件描述符 •对每个描述符,我们所关心的状 ...

  9. loadrunner 脚本开发- web_url函数详解

    脚本开发- web_url函数详解 by:授客 QQ:1033553122   加载指定url的web页面(GET请求) C语言函数 int web_url( const char *StepName ...

随机推荐

  1. 对使用多个swiper下标有时显示不出来的问题

    这久写了一个网页,其中有很多的轮播图及tab页面切换,就使用了swiper框架,有时一个网页要用到6-8个,如此就出现了下图这种问题: 有时刷新看不到,有时又能看到,tab切换过去的页面也看不到,其实 ...

  2. 关于React组件之间如何优雅地传值的探讨

    闲话不多说,开篇撸代码,你可以会看到类似如下的结构: import React, { Component } from 'react'; // 父组件 class Parent extends Com ...

  3. Django的Models

    Django的数据库配置: 1    django默认支持sqlite,mysql, oracle,postgresql数据库 2.   在django的项目中会默认使用sqlite数据库,如果要使用 ...

  4. eclipse 代码 editor 界面出现奇怪符号解决

    Preferences->General->Editors->Text Editors->去掉 Show whitespace characters->apply

  5. Android项目实战(三十八):2017最新 将AndroidLibrary提交到JCenter仓库(图文教程)

    我们经常使用github上的开源项目,使用步骤也很简单 比如: compile 'acffo.xqx.xwaveviewlib:maven:1.0.0' 这里就学习一下如何将自己的类库做出这种可以供他 ...

  6. Wincc flexable的数据记录的组态

    1.数据记录就是将PLC采集的数据记录下来如下,注意只有TP270和OP270以上的HMI设备才有数据记录 2.练习展示 3.开始创建数据记录 4.组态数据记录 5.组态变量的记录属性.将数据记录和变 ...

  7. arcgis api for js入门开发系列十六迁徙流动图

    最近公司有个arcgis api for js的项目,需要用到百度echarts迁徙图效果,而百度那个效果实现是结合百度地图的,怎么才能跟arcgis api结合呢,网上搜索,终于在github找到了 ...

  8. bzoj 2109: [Noi2010]Plane 航空管制

    Description 世博期间,上海的航空客运量大大超过了平时,随之而来的航空管制也频频 发生.最近,小X就因为航空管制,连续两次在机场被延误超过了两小时.对此, 小X表示很不满意. 在这次来烟台的 ...

  9. jsDOM编程-乌龟抓小鸡游戏

    <html> <head>  <title>js乌龟抓小鸡游戏 </title>    <meta http-equiv="conten ...

  10. Java Error : type parameters of <T>T cannot be determined during Maven Install

    遇到了一个问题如下: Caused by the combination of generics and autoboxing. 这是由于泛型和自动装箱联合使用引起的. 可以查看以下两个回答:   1 ...