测试环境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. manjaro20默认关闭蓝牙

    用于节电. https://gist.github.com/0xfe11/d0874b7d31cf649616fa9d816571ab3c 推荐执行 # Stop and disable the bl ...

  2. 146_LRU cache | LRU缓存设计

    题目: Design and implement a data structure for Least Recently Used (LRU) cache. It should support the ...

  3. 搭服务器之centos-ipv6源--配置各虚拟机系统的ipv6网络安装源。

    在2g内存的台式机里安装了三台虚拟机,跑起来好可以,就是swap用的比较多,图见上一篇随笔.现在平台基本有了,自己笔记本算总控,实验室台式机跑着4台机器(一实三虚),加上一台服务器,可以做很多事情了, ...

  4. golang中goroutine

    1. 概念 goroutine 奉行通过通信来共享内存,而不是共享内存来通信 goroutine 是由go的运行时(runtime)调度和管理的 go程序会智能的将goroutine中的任务合理的分配 ...

  5. Python解释器下载安装教程

    简介: 自从20世纪90年代初Python语言诞生至今,它已被逐渐广泛应用于系统管理任务的处理和Web编程.2021年10月,语言流行指数的编译器Tiobe将Python加冕为最受欢迎的编程语言,20 ...

  6. kubernetes之配置Metrics Server

    Kubernetes 1.8 关于资源使用情况的 metrics,可以通过 Metrics API 获取到, Kubernetes 1.11 已经废弃 heapster.这里我们基于 Kubernet ...

  7. servlet单例模式以及servlet的请求流程

    ​ 目录 一.servlet 单例模式: 二.servlet的请求流程: ★ 流程: ★ 详细过程如下: 一.servlet 单例模式: tomcat服务器,通过Java的反射机制来自动调用servl ...

  8. 资本主义反抗指南精要(v0.1)

    (1)充分预估工作时间,比如一小时的开发任务,你可以加上技术调研,API/数据库设计,单元测试,联调,集成测试等等,拖到一天,同理一天的任务可以拖到一星期. (2)简历上尽一切手段来美化,最好能包装成 ...

  9. JavaScript与java语法区别

    网页中各种技术的作用 感谢大佬:https://blog.csdn.net/RookiexiaoMu_a/article/details/89052768 HTML 制作网页的结构 CSS 美化网页 ...

  10. 动态路由与RIP协议

    动态路由与RIP协议 目录 动态路由与RIP协议 一.动态路由(Dynamic Route) 1.动态路由概述 2.动态路由特点 3.动态路由协议 (1)动态路由协议概述 (2)度量值 (3)收敛 4 ...