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

C# 语言入门(一)基础介绍与程序规范

本篇核心知识点:C# 语言定位、.NET 框架、VS2022 项目创建、程序基础结构、命名空间 using、类与 Main 入口、控制台输入输出、代码注释规范、标识符命名规则、关键字、#region 代码折叠、C# 与 C++/Java/TS 横向对比

一、C# 语言整体介绍

1. 概念

C#(C Sharp)是微软推出面向对象、强类型编程语言,依托.NET 框架运行;主要两大使用场景:Windows 桌面程序、Unity 游戏脚本开发。

特性
  1. 强类型:定义变量必须明确数据类型,类型不能随意自动转换,区别于 TypeScript 弱类型;

  2. 纯面向对象:一切逻辑依托类实现,无全局游离函数;

  3. 兼容指针:支持不安全代码块操作指针,语法与 C++ 高度一致;

  4. 跨语言互通:可编写 dll 动态库,Unity、桌面项目均可复用;

  5. 语法融合 C++、Java 优势,相似度高,有 C++ 基础上手极快。

拓展:各语言横向对比

  1. C# VS Java:相似度 80%+,均面向对象、垃圾回收;Java 用super代表父类,C# 用base;Java 无原生指针;

  2. C# VS C++:语法、VS 操作、调试逻辑一致;C# 自动垃圾回收无需手动 delete;支持 unsafe 指针;

  3. C# VS TypeScript:TS 弱类型,C# 强类型;TS 多用于网页,C# 用于游戏 / 桌面。

.NET 框架说明

.NET 是 C# 运行底层类库,内置大量系统工具类(控制台、网络、集合等);安装 VS 时需勾选.NET 桌面开发、Unity 相关组件

二、VS2022 创建 C# 控制台项目

1. 操作步骤

  1. 新建文件夹单独存放 C# 学习工程,与 Unity 工程分开;

  2. 打开 VS2022 → 创建新项目 → 选择「控制台应用 (.NET Framework)」;

  3. 自定义项目名称、选择 F 盘存放路径,点击创建;

  4. 解决方案内可新建多个 Lesson 项目,右键设为启动项切换运行。

特性

1 VS 操作逻辑、编译 / 调试快捷键(F5 运行)和 C++ 完全统一;

2 源文件后缀.cs,编译后输出.exe可执行程序,存放在项目 Debug 文件夹;

3 双击 exe 可独立运行,调试模式会阻塞控制台窗口。

基础 HelloWorld 完整代码示例

using System; // 引入系统命名空间 // 当前程序命名空间 namespace HelloWorldProject{ // 程序主类 class Program{ // 程序入口静态Main方法(主线程起点) static void Main(string[] args){ // 控制台输出一行文字 Console.WriteLine("Hello World"); // 阻塞控制台,防止窗口一闪而过 Console.ReadKey(); } } }

三、C# 程序核心结构拆解

3.1 using 引入命名空间

概念

等价于 C++#include、Javaimport,用于导入其他命名空间下的类,避免完整长路径书写。

特性

1 语法:using 命名空间名;,写在文件最顶部;

2 仅导入当前文件生效,可同时多条 using 引入多个库;

3 核心基础库:using System;提供控制台、基础类型。

拓展区别

C++ #include 导入文件源码,C# using 仅引用已编译类库,不复制代码。

3.2 namespace 命名空间

概念

相当于代码 “文件夹”,隔离重名类,防止类名冲突。

特性

1 所有类必须包裹在命名空间内部;

2 不同 namespace 下同名类属于完全不同类型;

3 项目名默认作为根命名空间。

3.3 class 类 & Main 入口函数

概念

C# 所有函数、变量必须封装在类内部,无全局函数;Program是默认主类。

Main 方法核心规则

1 固定写法static void Main(string[] args),程序执行唯一起点;

2 static 静态方法,属于类本身,无需实例对象调用;

3 程序生命周期:从 Main 第一行执行,Main 执行完毕程序直接退出;

4 编码规范:所有类、方法名首字母大写(大驼峰)

四、控制台输入输出

1 输出

Console.WriteLine("内容"):输出后自动换行;

Console.Write("内容"):输出不换行。

2 输入

1Console.ReadKey():读取单个按键,阻塞窗口,用于防止运行完毕闪退;

2Console.ReadLine():读取一整行字符串,返回 string 类型,可接收用户输入文字。

代码示例
static void Main(string[] args) { Console.Write("请输入你的名字:"); string name = Console.ReadLine(); // 读取一行输入 Console.WriteLine("你输入的名字:" + name); Console.ReadKey(); }

五、代码注释全类型

1 单行注释//

作用:单行代码说明,和 C++ 完全一致。

// 控制台输出文字 Console.WriteLine("测试");

2 块注释/* 内容 */

作用:一次性注释多行代码,批量屏蔽代码。

/* 这里多行内容全部注释 Console.WriteLine(123); */

3 文档注释///(工程必备)

概念

连续三个斜杠,用于给类、方法、变量生成提示文档,鼠标悬浮自动展示说明。

特性

1 支持描述功能、参数、返回值;

2 团队协作核心规范,其他同事无需阅读内部代码即可知道用法。

代码示例
/// <summary>玩家生命值变量</summary> int hp; /// <summary>两数相加工具方法</summary> /// <param name="a">第一个数字</param> /// <param name="b">第二个数字</param> /// <returns>两数之和</returns> static int Add(int a, int b){ return a + b; }

六、标识符(变量 / 类 / 方法命名规则)

1 硬性语法规则(违反编译报错)

1 只能由字母、数字、下划线_、@组成,其余符号禁止;

2不能以数字开头

3 不能与 C# 内置关键字重名;

4 区分大小写:Hphp是两个完全不同标识符。

2 工程编码规范(强制推荐)

1类、方法名:大驼峰(每个单词首字母大写)PlayerInfoGetHp()

2普通变量:小驼峰 / 全小写playerHp、count;

3 枚举常量:全大写MAX_LEVEL

4 禁止无意义单字母命名,语义清晰;

拓展

驼峰命名法目的:提升代码可读性,企业面试、项目开发严格检查。

七、C# 关键字

概念

语言预留特殊单词,拥有固定语法含义,禁止直接用作标识符

特性

1 若必须使用关键字做名称,可前缀 @规避,例@int

2 高频基础关键字:static、void、class、namespace、using、base、this

3 进阶特殊关键字:delegate、event、unsafe(C# 独有,C++ 无)。

对比拓展

Java 父类关键字super,C# 统一使用base;C++ 无 this 关键字,C#this代表当前实例对象。

八、#region 代码折叠块

概念

VS 专用预处理标记,手动划分代码区域,支持一键折叠 / 展开长代码,优化阅读。

语法格式

#region 【区域描述文字】 // 同一功能代码写在此处 Console.WriteLine("功能A逻辑"); #endregion
特性

1 可嵌套、可放在函数内外;

2 团队统一规范使用,区分网络、角色、道具等功能模块;

3 不建议过度滥用,过多折叠反而增加阅读成本。

九、面向对象基础三句核心定义(重点)

1 通过class封装数据属性与功能方法;

2 使用类实例化内存中的独立对象;

3 对象之间互相调用方法、传递数据,完成整套程序逻辑。

示例:矩形封装

/// <summary>矩形类(游戏碰撞常用)</summary> class Rect{ // 属性:坐标、宽高 public int x; public int y; public int width; public int height; /// <summary>计算矩形面积</summary> public int GetArea(){ return width * height; } }

游戏拓展:游戏矩形额外存储左下角坐标,提供矩形碰撞检测方法。

十、C# 进阶知识点预告

1 基础:数据类型、变量、常量、运算符、分支循环;

2 面向对象:继承、多态、重载、索引器、属性;

3 C# 独有特性:反射、委托、事件、unsafe 指针、多线程;

4 网络编程:TCP/UDP Socket,游戏登录、服务端通信;

5 数据库:数据持久化存储、账号校验;

项目选型拓展

回合 / 卡牌游戏:TCP 稳定传输,无需 UDP;

FPS 实时对战:需要 UDP 低延迟通信。

十一、学习拓展建议

1 横向对比 C++/Java/TS,相同知识点快速吸收差异点;

2 规范文档注释、驼峰命名,贴合企业开发标准;

3 独立创建小型 Demo 项目,练习类封装;

4 熟练 VS 调试快捷键,F5 运行、断点调试排查逻辑错误。

http://www.jsqmd.com/news/1094200/

相关文章:

  • Web端自动化测试全解析:从工具选型到框架搭建实战
  • GPT-4稀疏激活真相:万亿参数如何仅用2%实现高效推理
  • 掌握开源工具:实现极域电子教室限制的高效解除方案
  • EPLAN Electric P8 2.9 批量编辑插件套装|设备改号+功能文本+页名+端子+连接点+中断点+文本|支持 Excel 导入导出
  • 海外红人营销Brief模板:产品信息、内容要求和复盘字段
  • 72%数字化转型折戟:别让伪AI低代码拖死业务
  • SSRF漏洞实战:从原理到防御的深度解析与渗透测试指南
  • 2026天猫代运营风向标:平台巨变下商家如何选对伙伴?汉聪领衔实力测评榜单出炉
  • OpCore-Simplify:3步完成黑苹果配置的终极简化方案
  • iOS自动化测试基石:WebDriverAgent架构、部署与Appium集成实战
  • 接入大模型很快,真正麻烦的是接入之后
  • 验证码逆向工程实战:从旋转与点选验证码到自动化识别方案
  • 通义千问发布语言世界模型,ChatGPT领跑2026AI平台
  • 冥想第一千九百二十五天
  • 解决多商户结算难题|平台分账分润公众号管理系统
  • Rust 宏系统的高级用法总结
  • 终极PC分屏神器:Nucleus Co-op让你的单机游戏变身多人派对
  • C 测验 3
  • Fillinger智能填充脚本高效自动化解决方案
  • 阳明心学与太乙心学核心分野|跳出混淆,明晰古今心学两条脉络
  • 【有奖调研】征集 AI 编程工具使用反馈,填写问卷领取Credits!
  • 超轻滑漂竿哪个公司好
  • 最新豆包九宫格验证码识别代码
  • Dify工作流模板宝库:零代码构建AI应用的终极指南
  • MSP430硬件乘法器MPY32:嵌入式实时信号处理的数学加速引擎
  • AI API 429 怎么解决:区分 rate_limit 与 insufficient_quota,给 Dify、Cursor 加上退避与限流
  • 深入WebDriverAgent源码:揭秘iOS自动化测试底层原理与实战调试
  • DeepSeek DSpark 详解:V4 实测提速 60%~85%,它做对了什么?
  • ​​128. 最长连续序列​​
  • 计算机毕业设计之基于深度学习的农作物病虫害识别系统