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

枚举器(Enumerator)的学习

基本概念 迭代器(Iterator)是一种设计模式,允许你遍历集合中的元素而不暴露其底层结构。在C#中,迭代器是通过实现 IEnumerable 和 IEnumerator 接口或者使用 yield 关键字来实现的。 用途 遍历集合:迭代器用于遍历集合(如数组、列表等)中的元素。 自定义集合遍历:可

OneBigLoser 发布于 2024-07-24

特性Attribute的学习

特性 (Attributes) 的解释 在C#中,特性(Attributes)是一种将元数据或声明性信息附加到代码(如类、方法、属性等)上的方式。特性不会影响代码的逻辑,但可以影响代码在运行时的行为或提供关于代码的信息。 用途及在游戏开发中的应用

OneBigLoser 发布于 2024-07-24

反射 (Reflection) 的解释

反射是一种强大的编程技术,使程序能够在运行时检查和修改自身行为。在 .NET 框架中,反射提供了一系列的API,允许开发者在运行时查询和操作对象的类型信息。 用途及在游戏开发中的应用 通用用途: 动态类型处理:在不知道对象类型的情况下,查询和调用对象的属性、方法和事件。 自动生成界面:根据对象的属性

OneBigLoser 发布于 2024-07-24

顺序存储和链式存储

基本概念 顺序存储 顺序存储(Sequential Storage)是指将数据按顺序存放在连续的内存空间中。最常见的顺序存储结构是数组。 特点: 数据在内存中是连续存储的。 每个元素有固定的索引,通过索引可以快速访问元素。 <

OneBigLoser 发布于 2024-07-20

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

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

OneBigLoser 发布于 2024-07-09

String(字符串)是什么?

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

OneBigLoser 发布于 2024-07-09

浅拷贝和深拷贝

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

OneBigLoser 发布于 2024-07-08

接口 (Interface) 详解

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

OneBigLoser 发布于 2024-07-08

索引器(Indexers)的解释

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

OneBigLoser 发布于 2024-07-08

多态 抽象方法和虚方法

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

OneBigLoser 发布于 2024-07-07

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

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

OneBigLoser 发布于 2024-07-07

里氏替换原则

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

OneBigLoser 发布于 2024-07-07

继承

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

OneBigLoser 发布于 2024-07-06

什么是 internal 修饰符?

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

OneBigLoser 发布于 2024-07-02

ref 和 out 的详细解释

在C#中,ref 和 out 是两种用于参数传递的修饰符,它们允许方法对参数进行修改,并将修改后的值返回给调用者。它们在语法和使用上有一些区别。 基本概念 ref 用途:ref 关键字用于通过引用传递参数,使方法可以对参数进行修改,并将修改后的值返回给调用者。 特点:参数在传递前必须被初始化。 常见

OneBigLoser 发布于 2024-06-28

值类型和引用类型

在C#中,数据类型分为两类:值类型和引用类型。了解它们之间的区别对编程很重要,因为它们在内存中的存储和处理方式不同。 基本概念 值类型 存储:值类型的变量直接包含其数据。它们存储在栈(Stack)上。 赋值:当一个值类型变量赋值给另一个变量时,实际上是将值复制了一份。 常见值类型:基本数据类型(如i

OneBigLoser 发布于 2024-06-27

Unity里面 格式化小数位数

使用 ToString 方法格式化小数位数 你可以使用 ToString 方法来格式化浮点数,只保留两位小数。 countDownText.text = GameManager.Instance.GetCountDownStartTimerFloat().ToString("F2"); //coun

OneBigLoser 发布于 2024-06-22

public event Action 和 public Action 在 C# 中有不同的用途和行为

public Action: public Action 声明了一个公共的委托字段或属性。 它允许外部代码直接访问和修改该委托的引用。 外部代码可以直接调用该委托,或者替换该委托的引用。 这种方式缺乏对委托的访问控制,可能导致意外的修改或调用。 public event Action: public

OneBigLoser 发布于 2024-06-21