欢迎学习C#!

QcrTiMo 发布于 9 天前 7 次阅读


写在前言

由于有做游戏的需求,所以决定出一个人性化(自学自写)C#教学文档,没什么含金量,甚至可能不如网上的教程,但是这是我学习过程中具有思考的教程,应该具有学习意义。

C#介绍

C#是由微软在21世纪初推出的一种现代的、通用的、面向对象的、类型安全的编程语言。它是微软 .NET 平台的核心组成部分,旨在提高开发人员的生产力,并能创建健壮、可维护的应用程序。

C#的类型系统

C#具有强大且灵活的强类型语言系统。意味着在你的C#程序代码中,每一个变量,每一个表达式,每一个函数在编译时都必须要有一个明确的类型,并且编译器在编译时会强制性执行类型兼容性检查,能快速帮助开发者在开发早期发现错误,提高代码程序在后期的稳定性和可靠性。

C#类型系统的主要特点

统一类型系统:

  • 在 C# 中,所有数据类型,无论是预先定义的(如 int, string)还是用户自定义的(类、结构、枚举等),都直接或间接地继承自唯一的根类型 System.Object。
  • 这使得任何类型的值都可以被当作 Object 来处理,为泛型、集合类等提供了便利。

值类型:

  • 值类型的变量直接包含其数据。当你将一个值类型变量赋给另一个值类型变量时,会复制包含的值。
  • 通常存储在栈 (Stack) 上(或作为类/结构的一部分内联存储)。
  • 主要包括:
    • 简单类型: int, float, double, bool, char, decimal 等数值和布尔类型。
    • 结构 (Struct): 用户自定义的值类型,例如 
    • struct Point { public int X; public int Y; }
    • 枚举 (Enum): 一组命名的整数常量,例如 
    • enum Status { Pending, Processing, Completed }
  • 可空值类型 (Nullable Value Types): 通过在值类型后添加 ? (例如 int?),可以让值类型也能持有 null 值,这在处理数据库等可能存在空值的场景中非常有用。

引用类型:

  • 引用类型的变量存储的是对其数据(对象)的引用(类似C语言的指针,内存地址),而不是数据本身。
  • 对象本身存储在堆 (Heap) 上。当一个引用类型变量赋给另一个时,两个变量将指向堆上的同一个对象,只复制引用。
主要包括:
  • 类 (Class): 面向对象编程的基础,用于定义对象的蓝图,包含数据(字段)和行为(方法)。string 类型虽然看起来像基本类型,但它是一个特殊的引用类型。
  • 接口 (Interface): 定义一组相关功能的契约,类或结构可以实现接口。
  • 委托 (Delegate): 类似 C/C++ 中的函数指针,用于引用方法。是事件处理和 LINQ 的基础。
  • 数组 (Array): 存储相同类型元素的集合。
  • object 类型:所有类型的最终基类。
  • dynamic 类型:绕过编译时类型检查,在运行时解析类型。主要用于与 COM 或动态语言交互。

泛型:

  • 允许你在设计类、接口和方法时,将类型的指定推迟到客户端代码声明和实例化时。
  • 例如 List<T>,你可以创建一个 List<int> 或 List<string>,其中的 T 就是类型参数。
  • 泛型提供了类型安全(无需强制类型转换)和性能优势(尤其对值类型,避免了装箱拆箱)。

类型安全:

  • C# 编译器在编译时执行严格的类型检查。例如,你不能将一个 string 类型的值直接赋给一个 int 类型的变量(除非进行显式转换)。
  • 这极大地减少了运行时因类型不匹配而导致的错误。

C#主要作用

C#如此强大并及其通用,得益于强大的.NET平台。以至于C#可以用来:

  • Web 开发
  • 桌面应用程序
  • 游戏开发
  • 云服务
  • 数据库交互 
  • 企业级应用
  • 物联网
  • 人工智能与机器学习
  • 工具和库开发

总结

C#凭借其现代化语言特性和卓越的开发工具(Visual Studio),已经成为目前应用最广、最有影响力的编程语言之一,适合初学者入门,也能够满足大型企业的应用需求。随着 .NET 平台的持续发展和跨平台能力的不断增强,C# 的生态系统和应用前景依然非常广阔。

斯哈斯哈斯哈,佳代子啊啊啊啊啊啊ᕕ(◠ڼ◠)ᕗᕕ(◠ڼ◠)ᕗᕕ(◠ڼ◠)ᕗᕕ(◠ڼ◠)ᕗᕕ(◠ڼ◠)ᕗ
最后更新于 2025-05-19