作者:OneBigLoser

Queue的基本概念

想象你和朋友们在食堂排队买午餐。你们按照先来后到的顺序排队,先来的人先买,后来的人后买。这就是队列的基本概念:"先进先出"(First In, First Out,简称FIFO)。 在编程中,队列是一种常用的数据结构。它就像食堂的排队一样,先添加到队列中的元素,会先被取出。 Queue的用途和在游戏

OneBigLoser 发布于 2024-07-15

Stack的解释

Stack(栈)是一种后进先出(LIFO, Last In First Out)的数据结构。这意味着最后被添加到栈中的元素会是第一个被移除的。栈提供了三个主要的操作:push(压入),pop(弹出),和 peek(查看栈顶元素但不移除)。 用途及在游戏开发中的应用 栈的用途非常广泛,包括: 函数调用

OneBigLoser 发布于 2024-07-15

ArrayList 的解释、与array的区别

ArrayList 的解释 在 .NET 中,ArrayList 是一个可以动态增长和缩小的数组。它是基于数组实现的,但提供了更加灵活的操作方式,如自动调整大小。ArrayList 属于 System.Collections 命名空间。 基本概念 ArrayList 存储的是 Object

OneBigLoser 发布于 2024-07-15

抽象类与接口的区别

抽象类(Abstract Class)和接口(Interface)都是面向对象编程中用于实现抽象和多态的工具。它们有一些相似之处,也有一些关键的区别。 基本概念 抽象类: 抽象类是不能被实例化的类,意味着你不能直接创建一个抽象类的对象。 抽象类中可以包含抽象方法(没有实现的方法)和非抽象方法(有实现

OneBigLoser 发布于 2024-07-15

结构体(Structs)与类(Classes)的区别

在编程语言如C#中,结构体和类都是数据结构,用于封装数据和行为。它们之间的主要区别在于: 存储方式:结构体是值类型,而类是引用类型。这意味着结构体的数据存储在栈上,而类的数据存储在堆上。 继承:类可以继承其他类,从而实现代码的复用和扩展性。结构体不支持继承,但可以实现接口。 默认构造函数:结构体总是

OneBigLoser 发布于 2024-07-09

StringBuilder的基本概念

想象你正在写一篇作文。如果每次想要修改作文内容,都必须重新抄写整篇文章,那会非常麻烦。现在,如果你有一个特殊的橡皮,可以让你在原有的作文上直接修改,那就方便多了。 在编程中,StringBuilder就像这个特殊的橡皮。它允许你在原有的字符串上直接进行修改,而不需要每次都创建新的字符串。这在需要频繁

OneBigLoser 发布于 2024-07-09

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