测试环境vs2019+.net5.0 请看 :https://cloud.tencent.com/developer/article/1507934

本测试环境vs2022+.net6.0 +window 10

学习C#编程最常见的示例程序是在控制台应用程序中输出Hello World!

//C#9  .net5.0
using System;
namespace DemoMainArgs
{
class Program
{
static void Main(string[] args)
{
Console.WriteLine("Hello World!");
Console.ReadLine();
}
}
}
//C# 10 .net 6.0
Console.WriteLine("Hello World!"); //系统会自动生成命名空间(项目名称)和Program 类。args 不用声明,系统默认agr就是main函数的string[] args参数
  • static:是将Main方法声明为静态, 是应用程序的入口。
  • void:说明main方法不会返回任何内容。
  • string[]args:这是用来接收命令行传入的参数。string[]是声明args的数据类型,可以存储字符串数组。
  • 可有再多个类中分布main函数,然后再项目属性=>常规=>启动对象 要将哪一个类中的main函数设定为入口点

通过cmd.exe程序来启动上述程序时会弹出命令窗口,你可以在那里输入一些参数,string[] args 指的就是在命令窗口输入的参数, 也就是命令行参数。

args是用来接收命令行参数的。它是可选项,不是必须的。

下面通过一个具体的示例程序来说明。

1. 新建控制台程序DemoMainArgs。

2. 编写代码。

//C#10 .net6.0

Console.WriteLine("该程序接收多个参数 用空格 来做参数分隔符");
Console.WriteLine($"main函数参数agrs 的长度{args.Length} ");
int i = 1;
foreach (var s1 in args)
{
Console.WriteLine($"参数{i++}:{s1}"); } Console.WriteLine(args);
Console.ReadKey(); //c# 9.0 .net5.0
using System;
namespace ConsoleApp6
{
class Program
{
static void Main(string[] args)
{
Console.WriteLine("该程序接收多个参数 用空格 来做参数分隔符");
Console.WriteLine($"main函数参数agrs 的长度{args.Length} ");
int i = 1;
foreach (var s1 in args)
{
Console.WriteLine($"参数{i++}:{s1}"); } Console.WriteLine(args);
Console.ReadKey();
}
}
}

3. 编译,生成ConsoleApp6.exe文件。

4、用ILSpy 打开ConsoleApp6.dll 发现 .net 6.0 C#10 编写的代码都是在main函数中 ,系统自动生成了program 类。

5、设定哪个类作为函数入口点、如果就一个main函数,那么默认未配置

下面通过3种方式来展示具体效果

方式一 :命令行中启动程序并输入参数

应用程序目录 的地址栏中输入cmd 回车 ,输入路径+DemoMainArgs,空一格,再输入 a b c d(可以输入任意多个参数,多个之间用空格分隔)

输入应用程序名和 参数(可以输入任意多个参数,多个之间用空格分隔)Enter回车查看结果如下:

方式二:编译前输入参数

右键点击【项目】--》【属性】,弹出配置界面。选择【调试】--》【命行参数】文本框中输入任意的参数,多个之间用空格分隔

配置完成后,系统生成Properties\launchSettings.json 文件保存这些配置:

按下F5编译并运行,直接看到输出

方式三:通过在程序的快捷方式中增加参数【推荐】

程序编译后,创建快捷方式程序。右键点击【ConsoleApp6.exe】--》【创建快捷方式】

产生了快捷方式文件,如下:

右键点击【ConsoleApp6.exe 快捷方式】--》【属性】--》【快捷方式】--》【目标】,在文本框的最后输入任意参数,

多个之间用空格分开

双击【ConsoleApp6.exe 快捷方式】,运行结果如下

总结:第3种方式比较灵活,可以由客户端(使用者)自由输入特点范围内的参数,然后程序根据输入的参数来判断执行不同的业务逻辑

【C#基础知识】C#控制台程序入口函数 Main(string[] args) 参数详解的更多相关文章

  1. C#控制台程序入口函数 Main(string[] args) 参数详解

    学习C#编程最常见的示例程序是在控制台应用程序中输出Hello World! using System; namespace DemoMainArgs { class Program { static ...

  2. Appium+python自动化(十五)- Android 这些基础知识,你知多少???(超详解)

    简介 前边具体操作和实战已经讲解和分享了很多了,但是一些android的一些基础知识,你又知道多少了,你都掌握了吗?这篇就由宏哥给小伙伴们既是一个分享,又是对前边的一次总结.为什么要对这些做一个简单的 ...

  3. Shiro基础知识03----shiro授权(编程式授权),Permission详解,授权流程(zz)

    授权,也叫访问控制,即在应用中控制谁能访问哪些资源(如访问页面/编辑数据/页面操作等).  在权限认证中,最核心的是:主体/用户(Subject).权限(Permission).角色(Role).资源 ...

  4. c语言main函数返回值、参数详解(返回值是必须的,0表示正常退出)

    C语言Main函数返回值 main函数的返回值,用于说明程序的退出状态.如果返回0,则代表程序正常退出:返回其它数字的含义则由系统决定.通常,返回非零代表程序异常退出. 很多人甚至市面上的一些书籍,都 ...

  5. WordPress分类列表函数:wp_list_categories用法及参数详解举例

    http://www.511yj.com/wordpress-wp-categories.html 注意: 1. wp_list_categories() 和 list_cats() 以及 wp_li ...

  6. 熬夜总结vue3中setUp函数的2个参数详解

    1.setUp函数的第1个参数props setup(props,context){} 第一个参数props: props是一个对象,包含父组件传递给子组件的所有数据. 在子组件中使用props进行接 ...

  7. Greenplum入门——基础知识、安装、常用函数

    Greenplum入门——基础知识.安装.常用函数 2017年10月08日 22:03:09 在咖啡里溺水的鱼 阅读数:8709    版权声明:本文为博主原创,允许非商业性质转载但请注明原作者和出处 ...

  8. 程序入口函数和glibc及C++全局构造和析构

    分类: CRT Machnasim 2011-06-15 17:45 144人阅读 评论(0) 收藏 举报 c++汇编linuxlist语言编译器 1,程序入口函数和初始化 操作系统在装载可执行文件后 ...

  9. [SQL] SQL 基础知识梳理(六)- 函数、谓词、CASE 表达式

    SQL 基础知识梳理(六)-  函数.谓词.CASE 表达式 目录 函数 谓词 CASE 表达式 一.函数 1.函数:输入某一值得到相应输出结果的功能,输入值称为“参数”,输出值称为“返回值”. 2. ...

随机推荐

  1. Cesium入门8 - Configuring the Scene - 配置视窗

    Cesium入门8 - Configuring the Scene - 配置视窗 Cesium中文网:http://cesiumcn.org/ | 国内快速访问:http://cesium.coini ...

  2. 从数组中找出第K大的数

    利用改进的快排方法 public class QuickFindMaxKValue { public static void main(String[] args) { int[] a = {8, 3 ...

  3. Activity Fragment Service生命周期图

    service的生命周期,从它被创建开始,到它被销毁为止,可以有两条不同的路径: A started service 被开启的service通过其他组件调用 startService()被创建. 这种 ...

  4. 实习之bii--关于虚拟机桥接无线网卡

    安装完VMware workstation之后,网络连接里会多出两个虚拟网卡: VMware Network Adapter VMnet1和VMware Network Adapter VMnet8. ...

  5. golang中接口对象的转型

    接口对象的转型有两种方式: 1. 方式一:instance,ok:=接口对象.(实际类型) 如果该接口对象是对应的实际类型,那么instance就是转型之后对象,ok的值为true 配合if...el ...

  6. IP:网络上的击鼓传花

    链接,而不是直达 在之前<听说你很懂 DNS?>中我们分析过用户在浏览器里面输入 www.baidu.com 后,浏览器如何通过 DNS 解析拿到 IP 地址,然后请求该 IP 地址获取网 ...

  7. 随机UA

    from fake_useragent import UserAgent ua = UserAgent().random headers={ 'User-Agent':ua } print(heade ...

  8. laravel操作Redis排序/删除/列表/随机/Hash/集合等方法全解

    Song • 3563 次浏览 • 0 个回复 • 2017年10月简介 Redis模块负责与Redis数据库交互,并提供Redis的相关API支持: Redis模块提供redis与redis.con ...

  9. aidl介绍

    (1)远程服务 运行在其他应用里面的服务     (2)本地服务 运行在自己应用里面的服务    (3)进行进程间通信  IPC   (4)aidl Android interface Definat ...

  10. 如何使PreparedStatement支持命名参数

    http://m.blog.csdn.net/wallimn/article/details/3734242