C#系统学习第二章——第一个C#程序
2.1编写第一个C#程序
(1)打开vs2022——创建新项目
(2)在右侧选择“控制台应用”(Net.Framework),单击下一步按钮
(3)选择程序保存路径和使用的NetFramework版本
(4)创建完成之后,会自动打开Program.cs文件,在Main方法中输入代码即可:
static void Main(string[] args){Console.WriteLine("Hello,World!");Console.ReadLine();}
1.Main方法:程序的入口方法。每个程序有且只能有一个Main方法。
2.Console.WriteLine():向控制台输出内容。
3. Console.ReadLine():获取控制台的输入内容(这里用来将控制台定位到桌面)。
2.2C#程序结构
2.2.1 命名空间
功能:组织程序
语法:namespace 命名空间名
注意:如果要调用某个命名空间中的类或者方法,首先需要使用using指令引用命名空间
语法:using 命名空间名
2.2.2 类
定义:类是一种数据结构,它可以封装数据成员、方法成员和其他的类。
地位:类是C#语言的核心和基本构成模块
说明:类和命名空间的关系
格式:
class [类名]
{[代码]
}
提示:这里简单的学习一下声明类即可,后续会更详细的阐述类
2.2.3 关键字和标识符
1.关键字
定义:C#语言中已经被赋予特定意义的一些单词。
注意:开发时,不可以把关键字作为命名空间、类、方法或者属性等的名称。
比如:C#语言中常用的关键字
类别 | 关键字 | 说明 |
---|---|---|
基础类型 | int , float , double , bool , char , string , byte , decimal | 基本数据类型声明。 |
变量修饰符 | var , const , dynamic | var (隐式类型)、const (常量)、dynamic (动态类型)。 |
访问控制 | public , private , protected , internal , protected internal | 类成员的访问权限修饰符。 |
类与对象 | class , struct , interface , enum , new , this , base | 定义类型和实例化对象。 |
继承与多态 | abstract , virtual , override , sealed , static | 控制类的继承和行为。 |
流程控制 | if , else , switch , case , default , for , foreach , while , do | 条件判断和循环语句。 |
跳转语句 | break , continue , return , goto , yield | 控制代码执行流程。 |
异常处理 | try , catch , finally , throw | 异常捕获与抛出。 |
命名空间 | namespace , using | 组织代码和引用其他命名空间。 |
委托与事件 | delegate , event , Action , Func | 委托和事件的定义与使用(后两者为库类型,非关键字,但常用)。 |
泛型 | where , in , out | 泛型约束和变体(in 、out 用于协变/逆变)。 |
异步编程 | async , await , Task | 异步方法标记和等待(Task 为库类型,非关键字)。 |
LINQ | from , select , where , orderby , group , by | LINQ 查询语法关键字。 |
其他 | checked , unchecked , fixed , unsafe , stackalloc | 用于边界检查、指针操作等特殊场景。 |
2.标识符
定义:可以简单的理解为一个人的名字,主要用来标识类名、变量名、方法名、属性名等各种成员。
C#语言标识符命名规则:
(1)由字母、数字和下划线组成;
(2)第一个字符不能是数字;
(3)不能是C#中的关键字。
注意:
(1)C#中的字母是严格区分大小写的。
(2)C#中允许汉字作为标识符,但是建议不要使用!!!
2.2.4Main方法
定义:类体中的主方法,也叫入口方法——激活整个程序的开关。
注意:
(1)static 和 void 是Main方法的静态修饰符和返回值修饰符;
(2)Main方法必须声明为static,并且区分大小写;
(3)通常Main方法中不写具体逻辑代码,只做类实例化和方法调用。
语法:(Main方法的声明4个方式)
1.static void Main(string [ ] args ){ }
2.static void Main(){ }
3.static int Main(string [ ] args ){ }
4.static int Main(){ }
2.2.5 c#语句
地位:是构造所有C#程序的基本单位。
方法 | 语法示例 | 作用 | 返回值/行为 | 适用场景 |
---|---|---|---|---|
Console.Write() | Console.Write("Hello"); | 输出内容到控制台,不换行。 | 无返回值,直接输出。 | 需要连续输出内容时(如进度条)。 |
Console.WriteLine() | Console.WriteLine("Hello"); | 输出内容到控制台,自动换行。 | 无返回值,输出后光标移动到下一行。 | 输出日志、调试信息等需要换行的场景。 |
Console.Read() | int ch = Console.Read(); | 从输入流读取单个字符(返回ASCII码值)。 | 返回 int 类型的字符ASCII码,阻塞直到用户输入。 | 读取单个按键输入(如菜单选择)。 |
Console.ReadLine() | string input = Console.ReadLine(); | 从输入流读取一行文本(直到用户按回车)。 | 返回 string 类型(包含换行符前的所有字符),若输入为空则返回 null 。 | 读取用户输入的完整字符串(如用户名、命令)。 |
2.2.6 注释
定义:注释就是在编译程序时被忽略的代码和文字。
功能:对某行或某段代码进行说明,方便代码的理解和维护。
1.行注释——需要注释的行数为单行或者较少
语法:// 被注释的内容
注意:注释可以出现在代码的任意位置,但是不能分割关键字和标识符。
2.块注释——需要注释的行数很多
语法:/* 被注释的内容 */
使用条件:通常用来为类文件、类或者方法等功能信息。
注意:块注释以/*开始,以*/结束,被注释的内容放在他们中间
2.3 程序编写规范
2.3.1代码编写规则
1.统一代码缩进的样式,例如统一缩进两个字符或者4个字符。
2.每编写完一句C#代码,都应该换行编写下一句代码。
3.合理使用空格,使代码结构更加清晰。
4.尽量使用接口,然后使用类实现接口,以提高程序的灵活性。
5.关键的语句(包括声明关键的变量)必须要写注释。
6.建议局部变量在最接近使用它的地方声明。
7.不要使用 goto 系列语句,除非是用于跳出深层循环。
8.避免编写超过5个参数的方法。如果要传递多个参数,则使用结构。
9.避免书写代码量过大的try...catch语句块。
10.避免在同一个文件中编写多个类。
11.生成和构建一个长的字符串时,一定要使用StringBuilder类型,而不用string类型。
12.对于f语句,应该使用一对“{}”把语句块括起来。
13.switch语句一定要有default语句来处理意外情况。
2.3.2 命名规范
1.两种命名方法
Pascal命名法(帕斯卡命名法):第一个字母必须大写,并且后面连接词的第一个字母均为大写。
Camel命名法(驼峰命名法):名称中第一个单词的第一个字母小写。
2.程序元素的命名规范
1.命名项目名称时:可以使用产品名称
2.用有意义的名字定义命名空间
3.接口的名称前加 I
4.类的名称最好能够体现出类的功能或操作
5.方法命名为动宾短语
6.定义成员变量时,最好加前缀 _
结语
通过本章的学习,我们初步掌握了 C# 程序的基本结构 和 开发规范,包括:
(1)第一个C#程序的创建(控制台应用、Main 方法、输入输出语句)。
(2)程序的核心组成(命名空间、类、关键字、标识符、注释等)。
(3)代码编写规范(命名规则、缩进、注释要求等)。
C# 是一门强大且严谨的语言,良好的编程习惯 和 清晰的代码结构 能显著提升开发效率和团队协作能力。后续我们将深入探讨 面向对象编程、数据类型、流程控制 等核心概念,逐步构建更复杂的应用程序。