LoserMe-分享我的C#&Unity学习之旅 廉价便宜国外VPS推荐,独享科学上网IP,Unity游戏制作学习,各种学习记录

String(字符串)是什么?

在C#中,string 是一个代表文本序列的类。字符串是字符的集合,每个字符都是一个Unicode字符。在C#中,string 是不可变的,这意味着一旦创建了一个字符串,就不能更改它包含的字符。 字符串在游戏开发中的用途 在使用Unity和C#进行游戏开发时,字符串有很多重要用途: 显示文本:在游戏

OneBigLoser 发布于 2024-07-09

浅拷贝和深拷贝

浅拷贝和深拷贝是两个在编程中非常重要的概念,尤其当你处理对象和数据结构时。这两个术语描述了如何复制对象的数据。为了更好地理解这些概念,我们可以用一个简单的日常生活例子来形象化解释。 浅拷贝(Shallow Copy) 概念: 浅拷贝是创建一个新对象,这个新对象是原始对象的一个副本,但它仅复制原始对象

OneBigLoser 发布于 2024-07-08

命名空间 (Namespace) 详解

想象一下,你的学校有很多个班级,每个班级都有自己的学生和老师。为了区分不同班级的学生和老师,学校会给每个班级一个独一无二的名字。 在编程中,命名空间也类似于班级,它用来组织和管理代码,避免不同部分的代码发生冲突。 命名空间的基本概念 命名空间就像一个大的“文件夹”,用来存放类、接口、结构体等代码元素

OneBigLoser 发布于 2024-07-08

接口 (Interface) 详解

想象一下,你在学校参加社团活动。每个社团都有自己的活动内容,比如篮球社团要训练投篮和战术,而戏剧社团要排练剧本和表演。但是,学校为了方便管理,要求每个社团都要上报成员名单和活动计划。 这里的“上报成员名单和活动计划”就可以看作是一个“接口”。它定义了每个社团都应该具备的功能,但具体怎么实现,由每个社

OneBigLoser 发布于 2024-07-08

索引器(Indexers)的解释

索引器允许一个对象被像数组一样访问。它可以定义在类或结构体中,使得你可以使用方括号([])来访问类或结构体的实例中的某个特定元素。 用途及在游戏开发中的应用 索引器非常适用于管理集合或复杂数据结构的情况,比如: 管理游戏资源:例如,在游戏中有一个装备系统,可以通过索引器来访问不同的装备。 地图和环境

OneBigLoser 发布于 2024-07-08

多态 抽象方法和虚方法

声明方式 抽象方法:使用abstract关键字声明,没有具体实现。 虚方法:使用virtual关键字声明,可以有默认实现。 实现要求 抽象方法:派生类必须实现所有的抽象方法,否则派生类也必须声明为抽象类。 虚方法:派生类可以选择是否重写虚方法,如果不重写,则默认使用基类的实现。 所在类的要求</

OneBigLoser 发布于 2024-07-07

引用类型和值类型在内存分配上的区别

想象一下,你有一张纸和一间仓库。 值类型就像是你在这张纸上直接写字。 你写下的内容 (值) 就直接存储在这张纸上 (内存空间)。 当你复制这张纸上的内容到另一张纸上时,相当于创建了一个完全独立的副本。修改其中一张纸上的内容,并不会影响另一张纸。 引用类型就像是你把东西存放在仓库里,然后在这张纸上记下

OneBigLoser 发布于 2024-07-07

万物之父(Object)和装箱拆箱

基本概念 在C#中,所有的类型都直接或间接地继承自 System.Object,也称为“万物之父”。这意味着每个类型都具有 Object 类的基本方法,如 ToString()、Equals()、GetHashCode() 和 GetType()。 用途 统一类型体系:使得所有类型都可以被视为 Ob

OneBigLoser 发布于 2024-07-07

继承中的构造函数

基本概念 在面向对象编程中,构造函数是用于初始化对象的特殊方法。当一个类继承自另一个类时,子类会继承父类的构造函数,但不能直接调用父类的构造函数。因此,子类需要在自己的构造函数中显式调用父类的构造函数,以确保父类的属性和方法得到正确的初始化。 用途 初始化对象:确保对象在创建时具有有效的初始状态。

OneBigLoser 发布于 2024-07-07

里氏替换原则

想象你有一个玩具盒,里面装着各种各样的玩具,如汽车、飞机、船等。这些玩具都有一些共同的特点,比如它们都可以移动和发出声音。现在,如果有人送给你一个新的玩具,比如一个会飞的汽车,你可以直接把它放到玩具盒里,而不用担心它会影响其他玩具的正常使用。这就是里氏替换原则的基本概念。 什么是里氏替换原则? 里氏

OneBigLoser 发布于 2024-07-07

继承

基本概念 继承是面向对象编程的一种重要机制,它允许一个类(称为子类或派生类)从另一个类(称为父类或基类)继承属性和方法。通过继承,子类可以复用父类的代码,并且可以扩展或重写父类的功能。 用途 代码重用:通过继承,子类可以复用父类的代码,减少代码重复。 代码扩展:子类可以扩展父类的功能,添加新的属性和

OneBigLoser 发布于 2024-07-06

内部类和分部

内部类 想象一下,你有一个大的玩具盒,里面装着各种各样的玩具。有时,你可能想要把一些相关的玩具放在一个小盒子里,然后再把小盒子放进大盒子。这个小盒子就像是内部类,它存在于另一个类(大盒子)的内部。 什么是内部类? 内部类是定义在另一个类内部的类。它可以访问外部类的成员,包括私有成员。内部类通常用于实

OneBigLoser 发布于 2024-07-06

运算符重载 的神奇面纱

想象一下,你有两个玩具盒子,里面分别装着不同的玩具。如果你想把两个盒子里的玩具合并到一起,你可以将玩具从一个盒子倒入另一个盒子。这个过程就类似于运算符重载,它允许我们为自定义类型定义运算符的行为,就像将两个盒子的玩具合并一样。 什么是运算符重载? 运算符重载允许我们为自定义类型定义运算符(如 +、-

OneBigLoser 发布于 2024-07-06

拓展方法

基本概念 扩展方法是一个特殊的静态方法,它可以像实例方法一样调用。扩展方法使你可以向现有类型添加新的方法,而无需修改原始类型的定义或创建新的派生类型。扩展方法在 C# 3.0 中引入,通常用于扩展系统类或第三方库类。 用途 增强功能:扩展方法可以为现有类型添加新的功能,而不需要修改源代码。 简化代码

OneBigLoser 发布于 2024-07-04

静态类和静态构造函数

基本概念 静态类是一个只能包含静态成员(字段、属性、方法、事件等)的类。静态类不能被实例化,也不能包含实例成员。它们通常用于提供实用工具方法或全局数据。 静态构造函数是一个特殊的构造函数,用于初始化类的静态成员。静态构造函数在第一次访问类的任何静态成员之前自动调用,且只能被调用一次。 用途 静态类:

OneBigLoser 发布于 2024-07-04

静态成员

想象一下,学校里有一个公共失物招领箱。任何同学捡到东西都可以放进去,任何同学丢了东西都可以来查找。这个失物招领箱就类似于程序中的静态成员,它属于整个学校,而不是某个特定的班级或学生。 什么是静态成员? 静态成员是类级别的成员,而不是实例级别的成员。静态成员可以是字段、属性、方法、事件或构造函数。静态

OneBigLoser 发布于 2024-07-04

成员属性:游戏开发中的数据封装利器

在面向对象编程中,成员属性是类的重要组成部分,用于存储对象的状态和数据。在游戏开发中,成员属性可以表示各种游戏元素的属性,如角色的生命值、武器的攻击力、物品的数量等。 基本概念 成员属性(Member Variable/Property):类内部的变量,用于存储对象的状态和数据。 访问修饰符(Acc

OneBigLoser 发布于 2024-07-02

构造函数和析构函数

构造函数和析构函数:游戏开发中的生命周期管理 在游戏开发中,我们经常需要创建各种游戏对象,如角色、道具、场景等。这些对象在被创建时需要初始化,在被销毁时需要进行清理。这就是构造函数和析构函数的作用。 基本概念

OneBigLoser 发布于 2024-07-02

成员方法:游戏开发中的行动指令

想象一下,你正在制作一款角色扮演游戏。每个游戏角色都有自己的特殊能力,比如战士可以挥剑攻击,法师可以施放魔法。这些特殊能力就像是角色的"行动指令",告诉他们该怎么做。 在编程世界里,这些"行动指令"就是成员方法。它们定义了一个类的行为,描述了这个类的对象能够执行哪些操作。 基本概念 成员方法: 类中

OneBigLoser 发布于 2024-07-02

什么是 internal 修饰符?

基本概念 internal 修饰符的意思是 "内部的",它用于控制类、属性或方法的访问范围。具体来说,使用 internal 修饰的成员只能在同一个程序集(项目)内被访问。不同于 public 修饰符,internal 修饰符限制了外部程序集(项目)的访问权限。 形象解释 假设你在你的房间里放了一个

OneBigLoser 发布于 2024-07-02