C#难点逐个击破(4):main函数
发布时间:2021-06-18 17:47:43
还记得读大学时初识计算机编程时的C语言,Main(){},那时还不明白入口函数是什么意思,只知道照抄书本上的示例,一行一行地跑printf看。
在C#中Main()属于主入口函数,我们知识C、C#属于编译语言,可以想象为一段程序最开始的头部部分,由Main()函数进入逐语句进行编译后执行。假如html页面也称作编程语言的话,那么它就属于从上到下一句一句(下载)执行;js也是由上到下执行,不过js相当诡异,变量作用域要特别对待;在asp.net中一般情况下是以Page_Load(object sender,EventArgs e)可以认为是主入口。
Main()中的string[] args参数
Main()函数必须使用static修饰,也就是说它必须是静态的,不可实例化——可以实例化的话程序就完蛋了(多线程!?)。默认的Main()函数是带形式参数的,形如static void Main(string[] args),这里面一个很至关重要的问题就是:很多人都认为其中的参数仅当程序涉及要求用户输入参数值才必须带上。这就大错特错了,我之前也是这么理解的,直接今天我在写这篇文章时查询资料时才知道。请参考下面的代码
using System;
/******************************
* Chapter:C#难点逐个击破(四)
* Author:王洪剑
* Date:2010-1-15
* Blog:http://www.51obj.cn/
* Email:walkingp@126.com
* Description:容易出错的Main参数理解
* ***************************/
namespace TestMain
{
class Program
{
static void Main()//此处没有加string[] args
{
Console.WriteLine("请输入您的姓:");
String firstName = Console.ReadLine();
Console.WriteLine("请输入您的名:");
String lastName = Console.ReadLine();
Console.WriteLine("您的姓名是:{0}{1}", firstName, lastName);
}
}
}
其次就是参数的类型只能是string[],否则就会编译错误
那么该参数是起什么作用的呢?举个例子你就知道了,notepad c:\boot.ini,或者IEXPLORER.exe http://www.g.cn,没错,里面的参数就是用来编译exe要加入的参数,比如我们可以加一个参数min或者hide,然后加入相应的代码就可以实现程序运行时最小化运行或者隐藏运行。
Main()函数的返回值
Main()默认无返回类似,除此之外,还可以返回int,并且仅能返回int,这种返回int的使用情况并不多,在msdn描述到了使用批处理bat调用程序执行的返回结果,根据结果来判断程序是否顺利执行。返回类型在控制台中并不显示"
本节源码下载


猜你喜欢
- 前言:在java的网络通信中,两个不同节点的主机想要进行通信则可以通过建立Socket对象(相当于客户端主机,向服务端请求发送信息)和Ser
- 用户可以自定义打印某一年的年历,即:把某一年的日历全部打印出来如把2013年的年历打印出来如下:January 2013&nbs
- 概述从今天开始, 小白我将带大家开启 Jave 数据结构 & 算法的新篇章.链表链表 (Linked List) 是一种递归的动态数
- Java 15 在 2020 年 9 月发布,虽然不是长久支持版本,但是也带来了 14 个新功能,这些新功能中有不少是十分实用的。Java
- Java调用天气Webservice的小应用废话不多说,直接贴代码: CityReq.javapackage com.weathe
- 这是个很简单的问题,但每次隔一段时间后使用起来总是会出点乱子。这里记录下Logcat的步骤:1,在Activity里申明tag变量(名字其实
- 一、项目概述之前有不少粉丝私信我说,能不能用Android原生的语言开发一款在手机上运行的游戏呢?说实话,使用java语言直接开发游戏这个需
- stack介绍和使用stack文档介绍stack是一种容器适配器,专门用在具有后进先出操作的上下文环境中,其删除只能从容器的一端进行元素的插
- 一、题目描述题目:有五个学生,每个学生有 3 门课的成绩,从键盘输入以上数据(包括学生号,姓名,三门课成绩),把这些数据存放在磁盘文件 &q
- 本文实例讲述了Java矩阵连乘问题(动态规划)算法。分享给大家供大家参考,具体如下:问题描述:给定n个矩阵:A1,A2,...,An,其中A
- 常用事件的分类Java AWT里面的事件可以简单的分为窗体事件(WindowEvent),鼠标事件(MouseEvent),键盘事件(Key
- 前文本章是关于Java流程控制语句的最全汇总,本篇为汇总上篇。流程是人们生活中不可或缺的一部分,它表示人们每天都在按照一定的流程做事。比如出
- 本文实例讲述了java基于AES对称加密算法实现的加密与解密功能。分享给大家供大家参考,具体如下:package com.soufun.co
- Java 反射机制介绍Java 反射机制。通俗来讲呢,就是在运行状态中,我们可以根据“类的部分已经的信息”来还原“类的全部的信息”。这里“类
- 没有借助任何第三方库,完全基于JAVA Socket实现一个最小化的HTTP文件下载客户端。完整的演示如何通过Socket实现下载文件的HT
- 创建父级项目 只需保留pom.xml文件这里只需搭建一个微服务 其他操作并无<?xml version="1.0"
- 本文汇集36个Android开发常用经典代码片段,包括拨打电话、发送短信、唤醒屏幕并解锁、是否有网络连接、动态显示或者是隐藏软键盘等,希望对
- 最近在调试程序,想把过程中需要查看的数据输出到文件中,因此将简单的小方法分享一下1.首先需要声明一个文件指针变量FILE* fp;2.接下来
- 因为我本人很喜欢在不同的页面之间跳转时加点好玩的动画,今天无意间看到一个动画效果感觉不错,几种效果图如下:既然好玩就写在博客中,直接说就是:
- 什么是字符串字符串或串(String)是由数字、字母、下划线组成的一串字符。一般记为 s=“a1a2···an”(n>=0)。它是编程