C#
文章平均质量分 92
游戏开发,C#肯定少不了,那我们就一点点来探索C#咯~
虽然有Lua框架了,但是 究其根本还是建立在C#的基础上的啦
ProMer_Wang
一名热衷于电脑游戏、编程的程序猿
展开
-
C#探索之路基础夯实篇(6):C#在Unity中的自定义特性
自定义特性(Attribute)是一种可以附加到类、字段、方法等各种元素上的标记,用于在编译时或运行时提供额外的信息或功能。它们是 C# 语言中的一种元编程特性,允许开发者通过声明性的方式为代码添加元数据。原创 2024-10-24 23:47:25 · 720 阅读 · 0 评论 -
C#探索之路基础夯实篇(5):语法糖概念解析
语法糖是一种编程语言的特性,它可以使代码更易读、更简洁,但不会增加语言的表达能力。根据特定的情况,有选择性的去使用语法糖而不是滥用。原创 2024-04-16 22:58:02 · 1837 阅读 · 0 评论 -
C#探索之路基础夯实篇(3):面向对象的三大特性和五大原则详解
类与对象:方法(Method):继承与派生:多态性:抽象(Abstraction):封装性:消息传递(Message Passing):其中我们所提及的三大特性主要指的是:封装(Encapsulation):继承(Inheritance):多态(Polymorphism):这些原则和特性共同构成了面向对象编程范式的核心。通过遵循这些原则和特性,开发人员可以编写出结构清晰、可维护、可扩展的代码。在面向对象编程中,编写的代码应该符合以下原则:单一职责原则(Single Responsibility Princi原创 2024-04-07 01:38:27 · 814 阅读 · 0 评论 -
C#探索之路基础夯实篇(4):UML类图中的六种关系详细说明
依赖关系(Dependency):表示一个类依赖于另一个类的定义或实现,当一个类的变化可能影响到另一个类时存在依赖关系,用带箭头的虚线表示。泛化关系(Generalization):表示类与类之间的继承关系,其中子类继承父类的属性和方法,用带空心三角箭头的实线表示。实现关系(Realization):表示类与接口之间的关系,类实现了接口定义的所有方法,用带空心三角箭头的虚线表示。表示一个类依赖于另一个类的定义或实现,当一个类的变化可能影响到另一个类时存在依赖关系,用带箭头的虚线表示。原创 2024-04-07 01:12:23 · 802 阅读 · 0 评论 -
C#探索之路基础夯实篇(1):编程中面向过程、数据、对象的概念辨析
面向数据编程(Data-Oriented Programming)是一种编程范式,它将数据视为程序设计的中心和核心,以数据的处理和转换为主要目标。通过将系统分解为多个对象,每个对象负责特定的功能或责任,可以使系统的设计和实现更加模块化和清晰,从而提高代码的可维护性和可扩展性。通过定义清晰的类和对象,以及规范化的接口和继承关系,团队成员可以更容易地理解和扩展彼此的代码,提高开发效率和代码质量。通过定义通用的基类或者抽象类,以及在子类中重写或者扩展父类的方法,可以实现代码的重用,减少重复编写代码的工作量。原创 2024-03-22 02:49:41 · 1168 阅读 · 0 评论 -
C#探索之路基础夯实篇(2):接口Interface的概念、实现、应用范围
接口定义了类应该具有的行为,但不关心具体的实现细节。通过接口,你可以定义一组方法、属性等,但是具体的实现由实现该接口的类来完成。原创 2024-03-22 02:46:42 · 1279 阅读 · 0 评论 -
C#探索之路(10):实现一个简单应用的功能——志愿填报
说明:虽然提及到的概念其实很浅显易懂,期望,权重,这是我一个短期内去实现的一个简要的功能Demo,hhh 大家可以发现一个很明显的bug-》概率怎么可能都为0.由于我的筛选条件比较简单,而且逻辑上其实是有问题的。我之所以会把这个内容展示出来主要的原因,是因为这是一个功能的实现外壳。旨在的目的是梳理写一个功能的逻辑:要确定的几个大步骤:1、数据准备以及数据读取2、筛选条件3、输出形式这三个步骤是最基础且最主要的。至于实现细节不过是在外壳里面去完善实现细节。比如说界面、功能、数据结构、原创 2023-07-14 00:38:23 · 522 阅读 · 0 评论 -
C#探索之路(9):深入理解C#代码编译的过程以及原理
编译器是将用某种程式语言写成的源代码(源语言),转换成另一种程式语言(目标语言)等价形式的程序。通常我们是将某种高级语言(如C、C++、C# 、Java)转换成低级语言(汇编语言、机器语言)。简而言之:编译器是高级语言解释器(转换器)转换缘由:机器组成是CPU,机器只能读懂并运行对应的cpu指令,对于我们的int、short、for这部分的内容根本不理解也不认识。原创 2023-06-20 03:47:12 · 3268 阅读 · 2 评论 -
C#探索之路(8):初探.Net中官方文档OpCode的格式
归根结底,总结只有一句话,那就是.Net中OpCode的格式的通俗的描述就是:一套用于统一公共语言工具的一套规范,以便于开发者能够根据一套规范去制定一系列的工具和拓展。这既是统一规范也是规定,没有规范和规定这个语言就无法制定标准。原创 2023-06-20 02:18:16 · 734 阅读 · 1 评论 -
C#探索之路(7):初探LitJson库并了解其中json的解析原理与处理报错
相信大家也看到了最近chagpt的一个热度与趋势,由于篇幅太长的原因,所以我就没有粘贴所有的代码至gpt中去一一做测试了,我便用以下代码做了一个gpt的尝试。这个跟平台提供的字符串的结构有关,如果数组为空返回的Null,那边边界处理起来就会很清晰。这是由于我们遍历 json2ObjectValue1.Count 时去收集了变量的信息,抛出的错误源头的异常,foreach 为空时,则停止遍历了;当然解决这个问题的也很简单,对解析出来的对应的字符串判空即可,如果为了确保正确,,看到编辑器提示的那就更加确信了,原创 2023-04-26 12:06:00 · 2381 阅读 · 4 评论 -
C#探索之路(6):浅学C#契约式编程、防御式编程
这点在我们常见的项目开发中就有用到,例如常见的商城系统,聊天系统这类带有输入框的内容,我们购买物品时,我们常见的有inputfield 输入框,而好的编程思维是应该只允许正确的输入结果通过,而非法的输入结果要么就被排除在外,要么就通过代码的例如正则表达式去实现筛选掉非法字符,常见的屏蔽字等等…更糟糕的是,防御式编程引入的额外代码增加了软件的复杂度。导表工具中运行时,当检测到表格为空时,或者数据出错时,为了方便去表现出其中的问题,我们通常会通过报错暂停程序的方式去做处理,并且抛出缺失的表格或者错误的原因;原创 2023-04-13 23:39:47 · 1224 阅读 · 0 评论 -
C#探索之路(5):表现力不够但简洁的switch 表达式
此次的这个发现也是由于偶然间在项目中第一次看到,这种表达方式挺新颖的,不过有的时候如果判断条件并不多的话,可以直接通过三目运算符直接替代,或者通过if else的方式取代,以及switch case常见的方式取代,所以通常来说我们会比较少遇见,但是其中的效果也是等效的,无非就是通过判断变量所满足的条件,实现对应的逻辑。并且,如果在某些逻辑并不需要这么复杂的情况下,我的建议是直接采用可读性最好的一种方式去进行表达。原创 2023-02-06 17:47:09 · 1349 阅读 · 0 评论 -
C#探索之路(4):浅析C#中的托管、非托管堆栈与垃圾回收
执行回收时,垃圾回收器会在托管堆中检查应用程序不再使用的对象,然后执行必要的操作来回收其内存。但是当我回过头来了解这个垃圾回收机制的时候,我发现了一个很有意思的事情,当我去查询相关的资料的时候我发现,这其中的原理真的是一环扣一环,还环环不一样,我的内心:(TM*燃起来了!,讲述的挺好的,那我不经发出了疑问,那是不是有的Unity的C#的热更方案就有用到这个托管代码的互操作性呢?但是,请务必注意,如果采取这种方法,当代码越过运行时的边界时,实际的执行管理将再次交接到托管代码,因而需要遵守相同的限制。原创 2022-10-30 18:10:15 · 3964 阅读 · 0 评论 -
C#探索之路(3):浅析C#中的线性递归与尾递归
一般来说,线性递归和尾递归的时间复杂度相差不大(当然也有例外情况,比如斐波拉契数列,这是因为其线性递归的实现,产生了大量冗余的计算,它的时间复杂度为指数级,而其尾递归的实现只需要线性级别的时间复杂度),但尾递归的空间复杂度比较小(这是在假定尾递归被优化的前提下),线性递归容易理解,尾部递归性能比较好。原创 2022-10-24 23:23:36 · 1720 阅读 · 0 评论 -
学习笔记:研读《C#入门经典》之易忽略的知识点(一)
1.隐式转换:从类型 A 到类型 B 的转换可以在所有情况下进行,执行转换的规则非常简单,可以让编译器执行转换。显式转换:从类型 A 到类型 B 的转换只能在某些情况下进行,转换的规则比较复杂,应进行某种类型的处理。隐式转换不需要做任何工作,也不需要另外编写代码。[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-L7D950x9-1655497550210)(C:\Users\Administrator\AppData\Roaming\Typora\typora-user-ima原创 2022-06-18 04:43:17 · 708 阅读 · 0 评论 -
C#探索之路(2):反射和特性(二)
C#中的反射和特性(二)上一节C#中的反射和特性(一),简单的了解了一下反射是什么,以及部分的特性,接下来继续来了解C#中的其他特性。Assembly类Assembly类在System.Reflection命名空间中定义,它允许访问给定程序集的元数据,它也包含了可以加载和执行程序集。例如我们在上一章节所讲的内容的基础上加上以下代码:using System;using System.Collections.Generic;using System.Linq;using System.Refl原创 2021-09-14 02:58:14 · 444 阅读 · 0 评论 -
C#探索之路(1):反射和特性(一)
C#中的反射和特性(一)前言:前段时间将Unity3d中UGUI组件精简复盘落下了帷幕,后期博主可能会从设计模式,部分的算法,以及从UGUI实际操作上、或者从Unity3D部分的一些小游戏Demo上去做文章。但是在此之前,还是多多了解和使用使用C#吧,这就是我之前提到了框架,lua的框架在便捷的同时,也会增加一个人的编程语言的惰性,虽然不是不懂,但是久而久之,使用少了,也就没有那么熟练了。所以近期可能会更多的从C#或者Unity的相关小型Demo的讲解入手去练习与讲解。话不多说,我们直接进入正题~ 今原创 2021-09-12 01:17:07 · 1061 阅读 · 0 评论