Welcome 微信登录

首页 / 软件开发 / C#

C#实现平衡多路查找树(B树)

C#实现平衡多路查找树(B树)

C#实现平衡多路查找树(B树)2013-11-13搞了SQL Server时间也不短了,对B树的概念也算是比较了解。去网上搜也搜不到用C#或java实现的B树,干脆自己写一个。实现B树的过程中也对很多细节有了更深的了解。简介B树是一种为辅助存储设计的一种数据结构,在1970年由R.Bayer和E.mccreight提出。在文件系统和数据库中为了减少IO操作大量被应用。遗憾的是,他们并没有说明为什么取名为B树,但按照B树的性质来说B通常被解释为Balance...
C#实现二叉查找树的算法

C#实现二叉查找树的算法

C#实现二叉查找树的算法2013-11-13简介树是一种非线性结构。树的本质是将一些节点由边连接起来,形成层级的结构。而二叉树是一种特殊的树,使得树每个子节点必须小于等于2.而二叉查找树又是一类特殊的二叉树。使得每一个节点的左节点或左子树的所有节点必须小于这个节点,右节点必须大于这个节点。从而方便高效搜索。下面来看如何使用C#实现二叉查找树。实现节点二叉查找树是节点的集合。因此首先要构建节点,如代码1所示。//二叉查找树的节点定义publicclass N...
C# WinForm将其它应用程序窗体嵌入自己内部

C# WinForm将其它应用程序窗体嵌入自己内部

C# WinForm将其它应用程序窗体嵌入自己内部2013-11-13 cnblogs BIT祝威这是最近在做的一个项目中提到的需求,把一个现有的窗体应用程序界面嵌入到自己开发的窗体中来,看 起来就像自己开发的一样(实际上……跟自己开发的还是有一点点区别的,就是内嵌程序和宿主程序的窗口激 活状态问题)。在codeproject找到了一篇相关的文章 (http://www.codeproject.com/Articles/9123...
用C#实现一个编译器

用C#实现一个编译器

用C#实现一个编译器2013-11-13 cnblogs BIT祝威前一阵做了个编译器(仅词法分析、语法分析、部分语义分析,所以说是前端),拿来分享一下,如有错 误,欢迎批评指教!整个代码库具有如下功能:提供编译器所需基础数据结构、计算流程框架 类,可供继承使用;提供基础数据结构的可视化控件;提供类似YACC的词法分析器、语法分析 器自动生成功能;提供Winform程序,集成和扩展上述功能,方便研究和应用。本文及其后续 系列将逐步给出所有工程源代码(vis...
C#静态构造函数与抽象类构造函数的面试题

C#静态构造函数与抽象类构造函数的面试题

C#静态构造函数与抽象类构造函数的面试题2013-11-13 博客园 alert(dong)前段时间找工作,去面试碰到了两道关于C#构造函数的题目,首先来看静态构造函数的题目如下(原题不 是如此,但类似,因为实在记不住那题目的样子了,第二题也是):class Base{static Base(){Console.WriteLine("Static Base");}public Base(){Console.WriteLine("...
c#运算符as和is的用法

c#运算符as和is的用法

c#运算符as和is的用法2013-11-13as 运算符类似于类型转换,所不同的是,当转换失败时,as运算符将产生空,而不是引发异常。在形式上,这种形式的表达式:expression_r as typeas运算符只执行引用转换和装箱转换。as运算符无法执行其他转换,如用户定义的转换,这类转换应使用case表达式来代替其执行。关于is的其实也差不多,只是IS不会帮你进行任何的转换。所以需要自已进行显示转换。is操作符进行转换,它自动检查时局是否和类型兼容,...
C#矩形圆角绘制改进版

C#矩形圆角绘制改进版

C#矩形圆角绘制改进版2013-11-13一、前言上一篇绘制矩形圆角的方式不够完善,感觉写的太过于复杂,将简单的问题复杂化了,本文对此进行了相应的改进,增强对各个圆角的半径的控制。绘制后的圆角效果图如下:二、圆角半径设计对于矩行而言,圆角分为左上角、右上角、左下角和右下角。每一个角都会存在相应的半径,用于控制每一个圆角的绘制。设计如下:public struct ArcRadius{private int _rightBottom;private int ...
C# GDI+如何绘制矩行的圆角

C# GDI+如何绘制矩行的圆角

C# GDI+如何绘制矩行的圆角2013-11-13一、前言本文主要介绍C# GDI+如何绘制矩行的圆角,其中涉及到如何使用位操作来处理组合的技巧。GDI+的本质在于,它能够替代开发人员实现与显示器及其它外部设备的交互。对于控件美化而言,需要达到自己期望的效果,GDI+必不可少。绘制后的圆角效果图如下:二、圆角枚举与相应组合处理设计对于矩行而言,圆角分为左上角、右上角、左下角和右下角。组合情况就分为无圆角、一个圆角、二个圆角、三个圆角以及四个圆角。枚举需要...
C#中两种方式将Xml匹配为对象集合

C#中两种方式将Xml匹配为对象集合

C#中两种方式将Xml匹配为对象集合2013-11-13一、前言上一篇随笔主要将实体转换成相应的Xml或者Xml对象,未考虑到属性的Attribute特性,以后有时间再整理一下。本文中的Xml匹配涉及到类的特性和属性的特性,并且对该类的匹配进行了相应的优化,尽量将反射引起的性能问题降低最低(其实,对于对象数量不是很多的Xml匹配,性能是可以忽略不计的)。二、类图设计主要思路为:通过反射将与类名的节点匹配,然后匹配属性(属性特性名称或者属性名称)值,设计图如...
C#中实体集合和实体转换成相应的string、XDocument、XElement、XDocument

C#中实体集合和实体转换成相应的string、XDocument、XElement、XDocument

C#中实体集合和实体转换成相应的string、XDocument、XElement、XDocument2013-11-13一、前言上篇随笔主要是针对于Xml的特性Attribute与实体之间的匹配与转换。该篇随笔主要内容为将对象转换成相应的Xml以及XElement。这2篇随笔以不同的方式对Xml进行转换与匹配,每种匹配都采用不同的角度进行操作。本文主要为对象实体的转换,下篇侧重于Xml的匹配。二、Xml转换2.1 实体集合转换Xml实体集合转换Xml的方...
C#中XmlAttribute与实体的转换和匹配方案

C#中XmlAttribute与实体的转换和匹配方案

C#中XmlAttribute与实体的转换和匹配方案2013-11-13一、前言可扩展标记语言 (XML) 是具有结构性的标记语言,可以用来标记数据、定义数据类型,是一种允许用户对自己的标记语言进行定义的源语言。XML是用来存储数据的,重在数据本身。本文中的代码是几个月前整理的,最近几个月的时间很少写随笔,除了工作以外,主要还是忙于整理自己的框架。这篇随笔主要是针对于XML的特性Attribute与实体之间的匹配与转换,其中的内容包括反射、XML以及Lin...
C# Winform ListView虚拟模式

C# Winform ListView虚拟模式

C# Winform ListView虚拟模式2013-11-13一、前言虚拟模式在许多情况下都很有用。 如果必须从已存在于内存中的非常大的集合填充一个 ListView 对象,则为每项创建一个 ListViewItem 对象会很浪费。 在虚拟模式下,从缓冲之中获取所需的数据进行加载,性能会有很大提高。 在其他情况下,可能需要经常重新计算 ListViewItem 对象的值,对整个集合进行此操作将产生不可接受的性能。如下为虚拟模式的一个应用示例(仿VS20...
C#插件开发简单模型

C#插件开发简单模型

C#插件开发简单模型2013-11-13一、前言插件模型指应用程序由一些动态的独立模块构成,每个模块均具有一个或多个服务,并满足一定的插件协议,能够借助主程序实现主程序-插件,插件-插件之间的通讯。它定义了一套公共的接口,通过接口与插件进行通信,主要是通过反射来获取相关的属性和方法,然后再执行指定的操作。其实,它也可以理解为定义一套通用的解决方案,通过反射来获取相应的程序集的相关类型,然后执行这些指定类型的相关操作。它是一种即插即用的方案,更新及维护简便。...
C#集合对象的属性赋值

C#集合对象的属性赋值

C#集合对象的属性赋值2013-11-13(一)前言继《对象属性之间的相互赋值 》后,关于集合对象属性的赋值,主要可以通过循环遍历集合中的对象来进行属性间的赋值。这些可以运用于不同对象之间、相关属性类似的情况。最常见的是web services与silverlight之间的对象赋值(对象之间的属性值只有一部分是需要的),这样可以减少silverlight对web services的依赖。(二)具体实现通过反射将源对象与目标对象之间的属性赋值。源对象的属性名...
用C#来显示垃圾收集过程的视觉效果

用C#来显示垃圾收集过程的视觉效果

用C#来显示垃圾收集过程的视觉效果2013-11-25 cnblogs JasenKin废话不多说了,本人是搞Web方向的,C/S不太熟悉,先看界面图(比较粗糙),这里仅仅是从一个视觉的 效果来初步显示GC相对应的操作(简单的效果显示,并不是真正的GC内幕,那个我也不懂)基本概念对象的生成过程(newobj指令)1:计算类型(包括基类)所有字段的字节总数2: 字节总数再加上对象开销字段字节数(相加为:对象所需的字节数)。每个对象包含2个开销字段 :类型对象...
<< 191 192 193 194 195 196 197 198 199 200 >>