当前位置: 首页 > news >正文

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#语言中常用的关键字

类别关键字说明
基础类型intfloatdoubleboolcharstringbytedecimal基本数据类型声明。
变量修饰符varconstdynamicvar(隐式类型)、const(常量)、dynamic(动态类型)。
访问控制publicprivateprotectedinternalprotected internal类成员的访问权限修饰符。
类与对象classstructinterfaceenumnewthisbase定义类型和实例化对象。
继承与多态abstractvirtualoverridesealedstatic控制类的继承和行为。
流程控制ifelseswitchcasedefaultforforeachwhiledo条件判断和循环语句。
跳转语句breakcontinuereturngotoyield控制代码执行流程。
异常处理trycatchfinallythrow异常捕获与抛出。
命名空间namespaceusing组织代码和引用其他命名空间。
委托与事件delegateeventActionFunc委托和事件的定义与使用(后两者为库类型,非关键字,但常用)。
泛型whereinout泛型约束和变体(inout 用于协变/逆变)。
异步编程asyncawaitTask异步方法标记和等待(Task 为库类型,非关键字)。
LINQfromselectwhereorderbygroupbyLINQ 查询语法关键字。
其他checkeduncheckedfixedunsafestackalloc用于边界检查、指针操作等特殊场景。

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# 是一门强大且严谨的语言,良好的编程习惯清晰的代码结构 能显著提升开发效率和团队协作能力。后续我们将深入探讨 面向对象编程、数据类型、流程控制 等核心概念,逐步构建更复杂的应用程序。

http://www.lqws.cn/news/550225.html

相关文章:

  • P27:RNN实现阿尔茨海默病诊断
  • 华为云Flexus+DeepSeek征文|基于Dify+ModelArts开发AI智能会议助手
  • 本地部署 WordPress 博客完整指南(基于 XAMPP)
  • nt!MiFlushSectionInternal函数分析从nt!IoSynchronousPageWrite函数到Ntfs!NtfsFsdWrite函数
  • 三阶落地:腾讯云Serverless+Spring Cloud的微服务实战架构
  • React中的ErrorBoundary
  • 【经验】新版Chrome中Proxy SwitchyOmega2已实效,改为ZeroOmega
  • 车载诊断架构 --- 诊断与ECU平台工作说明书
  • SQL Server for Linux 如何实现高可用架构
  • 【策划所需编程知识】
  • 中国双非高校经费TOP榜数据分析
  • 【记录】Ubuntu|Ubuntu服务器挂载新的硬盘的流程(开机自动挂载)
  • SQL学习笔记4
  • MFC获取本机所有IP、局域网所有IP、本机和局域网可连接IP
  • 一起endpoint迷路的问题排查总结
  • 浅谈Apache HttpClient的相关配置和使用
  • git add 报错UnicodeDecodeError: ‘gbk‘ codec can‘t decode byte 0xaf in position 42
  • SOCKS 协议版本 5 (RFC 1928)
  • 【stm32】HAL库开发——CubeMX配置串口通讯(中断方式)
  • VUE使用过程中的碰到问题记录
  • 自动对焦技术助力TGV检测 半导体检测精度大突破
  • 工作台-02.代码开发
  • Linux信号机制:从入门到精通
  • [Python]-基础篇1- 从零开始的Python入门指南
  • 微调大语言模型(生成任务),怎么评估它到底“变好”了?
  • Python网安-zip文件暴力破解
  • Java:链接mysql数据库报错:CommunicationsException: Communications link failure
  • Coze API如何上传文件能得到文件的file_url
  • 缓解停车难的城市密码:4G地磁检测器如何重构车位资源分配
  • Discrete Audio Tokens: More Than a Survey