C#数据结构
海人001
爱码仕
展开
-
C#连接数据库,更新,查找
using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Windows.Forms; using System.Da...原创 2018-03-27 22:04:41 · 10529 阅读 · 0 评论 -
组件-实体-系统 (ECS \CES)测试代码 C# DEMO
测试包含6个文件 委托:存有对某个方法的引用的一种引用类型变量。引用可在运行时被改变。若委托指明了参数类型,则委托可以被引用与任何符合该参数类型的方法 枚举类型:用来储存事件索引。对应在基类组件中的储存位置。 基类组件:提供储存容器,能够获取或设置自己的拥有者,能够注册事件,注册就是将事件对象储存在容器中。能够处理事件请求。 事件类:自定义的类,模拟现实动作。储存数据 组件类:继承自基类...原创 2018-08-11 16:06:48 · 11048 阅读 · 0 评论 -
组件-实体-系统 (ECS \CES)游戏编程模型
一般来说,我们实现游戏实体都是采用面向对象的方法进行编程。每一个实体都是一个对象,并且需要一个基于类的实例化系统,允许实体通过多态来扩展。但是,这样的方法,往往导致系统中出现大量的类,造成类爆炸的情况出现。随着新的实体出现,我们发现很难在类继承图中添加新的实体,特别是当这个实体需要很多不同类型的功能的时候。你可以看下下面的一个简单的类图继承。一个静态的敌人,并不能够很好的继承出来。 为...原创 2018-08-08 18:33:57 · 11336 阅读 · 0 评论 -
C#二叉查找树
二叉查找树简介 二叉排序树(Binary Sort Tree),又称二叉查找树(Binary Search Tree),亦称二叉搜索树。 定义 二叉排序树或者是一棵空树,或者是具有下列性质的二叉树: (1)若左子树不空,则左子树上所有结点的值均小于或等于它的根结点的值; (2)若右子树不空,则右子树上所有结点的值均大于或等于它的根结点的值; (3)左、右子树也分别为二叉排序树; 查找...原创 2018-08-07 19:07:37 · 10999 阅读 · 0 评论 -
C#队列
队列简介 队列是一种特殊的线性表,特殊之处在于它只允许在表的前端(front)进行删除操作,而在表的后端(rear)进行插入操作,和栈一样,队列是一种操作受限制的线性表。进行插入操作的端称为队尾,进行删除操作的端称为队头。队列中没有元素时,称为空队列。 队列的数据元素又称为队列元素。在队列中插入一个队列元素称为入队,从队列中删除一个队列元素称为出队。因为队列只允许在一端插入,在另一端删除,所以...原创 2018-08-07 19:02:31 · 10589 阅读 · 0 评论 -
C#栈
栈简介 栈(stack)又名堆栈,它是一种运算受限的线性表。其限制是仅允许在表的一端进行插入和删除运算。这一端被称为栈顶,相对地,把另一端称为栈底。向一个栈插入新元素又称作进栈、入栈或压栈,它是把新元素放到栈顶元素的上面,使之成为新的栈顶元素;从一个栈删除元素又称作出栈或退栈,它是把栈顶元素删除掉,使其相邻的元素成为新的栈顶元素。 栈操作 栈代码实现 using System; ...原创 2018-08-07 18:42:21 · 11045 阅读 · 0 评论 -
C#双向链表
链表简介 链表是一种物理存储单元上非连续、非顺序的存储结构,数据元素的逻辑顺序是通过链表中的指针链接次序实现的。链表由一系列结点(链表中每一个元素称为结点)组成,结点可以在运行时动态生成。每个结点包括两个部分:一个是存储数据元素的数据域,另一个是存储下一个结点地址的指针域。 相比于线性表顺序结构,操作复杂。由于不必须按顺序存储,链表在插入的时候可以达到O(1)的复杂度,比另一种线性表顺序表快得多...转载 2018-08-07 18:33:38 · 11096 阅读 · 0 评论 -
面向对象五大基本原则
以前一直认为程序中的类有使用到封装继承多态就是面向对象设计,其实不然 封装,继承,多态只是面向对象的三大特性,但是在设计程序的时候并不是说类的结构使用到了(或是体现出了)这三个特性就是面向对象, 其实真正的面向对象设计是要符合下面的五大原则, 面向对象的五大基本原则 单一职责原则(SRP) 开放封闭原则(OCP) 里氏替换原则(LSP) 依赖倒置原则(DIP) 接口隔离原则(ISP) ...原创 2018-08-02 14:28:19 · 10538 阅读 · 0 评论 -
值类型和引用类型深入理解
1.值类型(ValueType) 值类型包括:数值类型,结构体,bool型,用户定义的结构体,枚举,可空类型。 值类型的变量直接存储数据,分配在托管栈中。变量会在创建它们的方法返回时自动释放,例如在一个方法中声明Char型的变量name=’C’,当实例化它的方法结束时,name变量在栈上占用的内存就会自动释放 C#的所有值类型均隐式派生自System.ValueType。 结构体:stru...原创 2018-08-02 14:19:04 · 10463 阅读 · 0 评论 -
c#装箱拆箱
装箱和拆箱是值类型和引用类型之间相互转换是要执行的操作。 1. 装箱在值类型向引用类型转换时发生 2. 拆箱在引用类型向值类型转换时发生 光上述两句话不难理解,但是往深处了解,就需要一些篇幅来解释了。 我们先看装箱时都会发生什么事情,下面是一行最简单的装箱代码 object obj = 1; 这行语句将整型常量1赋给object类型的变量obj; 众所周知常量1是值...原创 2018-08-02 14:06:14 · 10375 阅读 · 0 评论 -
实践检验递归查询SQL
Sql递归原理 递归最少包括两个查询(也被称为成员)。第一个查询为定点成员,定点成员只是一个返回有效表的查询,用于递归的基础或定位点。第二个查询被称为递归成员,使该查询成为递归成员的是对递归引用时触发(递归表.id与该表的pid)。在逻辑上,可以将其理解为是前一个查询语句的子集。 递归查询没有显式的递归终止条件,只有当第二个递归查询返回空结果集或是超出了递归次数的最大限制时才停止递归...原创 2018-05-10 17:41:10 · 14422 阅读 · 3 评论 -
小笔记--数据转换
1.C#、.Net中把字符串(String)格式转换为DateTime类型的三种方法 方法1 Convert.ToDateTime(string); 方法2 DateTimeFormatInfo dtFormat = new System.GlobalizationDateTimeFormatInfo(); dtFormat.Shor...原创 2018-05-10 13:18:02 · 10352 阅读 · 0 评论 -
.NET自定义控件
自定义控件在开发中算常用的技术,因为在解决实际问题时往往.NET Framework提供的控件不能满足所有的需求,还好可以根据.NET Framework提供的基础控件组合扩展成自定义控件。 首先创建ascx文件。 2.文件内容与普通的ASPX文件没有太多区别,编完成的文本可以像普通标签一样直接拖过来使用。 AND 这个就是我们刚刚创建的自定义...原创 2018-05-10 09:15:43 · 11209 阅读 · 0 评论 -
C# HashSet
在C#中引入HashSet 在.NET框架中,有几个类可用于执行这些操作。一些课程如下: 列表 字典 哈希集 队列 集合 在C#编程中,像ArrayList,List这样的集合,只需添加其中的值,而不检查任何重复。为了避免这种重复的数据存储,.NET提供集合名称集。这是一个具有不同项目的集合类型。 有两种类型的集合,SortedSet和HastSet。SortedSet按照排序顺序存...原创 2018-08-11 18:48:11 · 10917 阅读 · 0 评论