自己动手写泛型List<T>
自己动手写泛型List<T>
在开始动手写自己的泛型List<T>之前,咱们先来看一下非泛型的缺点
非泛型的缺点:
1、大量类型转换
ArrayList AL=new ArrayList();
http://cyqdata.cn/cnblogs/article-detail-37869
IronPython <零> 前言
作者语: 我是一名.net开发人员,热爱C#.net,在专注第一语言的同时拓展第二主语言。同样出于热爱,选择了Python,而又不想纯粹的去学习Py,从而学习起来“杂交品种”。就杂交伦而言是有其一定的优势的。 IronPython 简 介 IronPython 是一种在 .NET 及 Mono上的 P
http://cyqdata.cn/cnblogs/article-detail-37731
.net集合类的研究--链表—ListDictionary,LinkedList<T>
链表是数据结构中存储数据的一种形式,我们经常使用的List<T>,ArrayList,Hashtable等容器类,存取操作时是用数组Array来保存,ListDictionary和LinkedList<T>不用Array,而是用链表的形式来保存。 链表的优点和缺点 以ListDictionary为例,在源码中,看不到Array类型的的变量,取而代之的是一个Diction
http://cyqdata.cn/cnblogs/article-detail-37519
WPF基础入门<2>__XAML
本主题介绍可扩展应用程序标记语言 (XAML) 语言的功能,并演示如何使用 XAML 编写 Windows Presentation Foundation (WPF) 应用程序。本主题专门介绍了 Windows Presentation Foundation (WPF) 实现的 XAML。XAML 本身是比 Windows Presentation Foundation (WPF) 更广泛的一个语
http://cyqdata.cn/cnblogs/article-detail-37341
.net集合类的研究--哈希表(二)--HashSet<T>
.Net3.5之后出现了HashSet<T>,硬翻译过来就是“哈希集合”,跟“哈希”两字挂钩说明这种集合的内部实现用到了哈希算法,用Reflector工具就可以发现,HashSet<T>和Dictionary<TKey,TValue>使用了相同的存储方式和哈希冲突算法,那么,它跟Dictionary<TKey
http://cyqdata.cn/cnblogs/article-detail-37148
.net集合类的研究-Hashtable,Dictionary<TKey,TValue>
今天来探究哈希表,.net内置的哈希表容器是Hashtable类,而Dictionary<TKey,TValue>是对应的泛型哈希表.
哈希表-Hashtable的实例化
一般我们实例化ArrayList或List<T>的时候,如果不指定容量,则其内部是赋值为一个静态的空数组。当有添加操作时,会实例化为一个长度为4的数组,如果容量满了以后,再添加,就会自动扩充为两倍的容量。
http://cyqdata.cn/cnblogs/article-detail-37048
<STL源码剖析>阅读笔记之 仿函数和适配器
仿函数(函数对象)和适配器可以说是STL中默默无闻的贡献者,它们没有容器、算法和迭代器那么有名
但是其贡献却很大。这里总结的主要是书中第7、8章的内容。
一 仿函数
仿函数又称函数对象,从名字上可以得出,它本质上是 一种具有函数特质的对象, 也即可以像使用函
数一样使用该对象。怎么样做?重载operator()运算符即可,有了这个运算符,我们就可以在仿函数对象后
面加上
http://cyqdata.cn/cnblogs/article-detail-36917
KlayGE的Realtime GI正式上线
转载请注明出处为KlayGE游戏引擎,本文地址为http://www.klayge.org/2011/04/28/klayge%e7%9a%84realtime-gi%e6%ad%a3%e5%bc%8f%e4%b8%8a%e7%ba%bf/ GI组的atyuwen同学上个月用KlayGE实现了Multi-resolution Splatting Indirect Illumination的效果,
http://cyqdata.cn/cnblogs/article-detail-36811
[翻译]List<T>为什么实现了那么多接口?
原文地址:http://blogs.msdn.com/b/ericlippert/archive/2011/04/04/so-many-interfaces.aspx
原作者:Eric Lippert
Eric Lippert是微软员工,C#编译器的主要开发人员之一。
今天,我在StackOverflow上回答了一个问题。按照以往的习惯,我把它以对话体的形式整理成一篇博客。
MSDN的文档中说Li
http://cyqdata.cn/cnblogs/article-detail-36395
如何自动产生转储单LT06
Maxone公司有上WM模块,今天,仓库的用户老蒋,蒋学志来找我何慕雄,说现在的操作处理都是做完了IM操作以后,然后再手工操作WM的,手工产生TO,transfer order转储单的,这个比较麻烦。能否是操作完IM以后,马上自动产生WM呢?
我了解老蒋的意思,现在比如说我们在IM里面,用MB1B来做了transfer posting转储过账后,还要用T CODE LT06来手工创建TO转储单的,
http://cyqdata.cn/cnblogs/article-detail-36095
Silverlight中使用MVVM(6):AutoComplteBox的异步过滤
Silverlight中使用MVVM(1)--基础 Silverlight中使用MVVM(2)—提高 &
http://cyqdata.cn/cnblogs/article-detail-35849
使用 IAsyncResult 进行 .NET 异步编程
微软早在.net2.0, 也就是VS2005的时候,就提供了一整套的异步编程设计模式,有3中常用的方式: 1. 使用 IAsyncResult 调用异步方法 2. 使用委托进行异步编程 3. 使用事件进行异步多线程编程 注: IAsyncResult 方式通常是用委托来实现的。所以可以认为前面2种方式就是一种。 http://msdn.microsoft.com/zh-cn/l
http://cyqdata.cn/cnblogs/article-detail-35770
IEnumeralbe<T>被误用一例
我一直使用Linq To SQL,以前一直没有问题,但前两天发生了一件怪事。先写个示例代码有助于理解。
1 /// <summary>根据指定的参数和分页信息搜索文章,并输出分页情况。</summary>
2 /// <param name="title">文章标题包含的内容。</
http://cyqdata.cn/cnblogs/article-detail-35426
谈谈Nullable<T>的类型转换问题
本篇文章讨论可空值类型(Nullable<T>)的转换,却确地说是如何将一种类型的值对象转换成相应的可空值。这来源于今天我们的一个成员遇到的一个小问题,我经过一些整理写了这篇文章。虽然没有什么技术含量可言,也希望对某些读者带来帮助。 目录 一、四种典型的值类型转换方式 二、当类型转换遭遇Nullable<T> 三、将基于Nullab
http://cyqdata.cn/cnblogs/article-detail-35075
短信猫软件的实现(C#)<十三>超长短信
超长短信:长度超过一条,而分多条发送的短信,通过用户数据头标识在接收端进行组合的短信(接收的短信在手机或其他终端上看到的是一条)。GSM_03.40规范中是Concatenated Short Messages :This facility allows short messages to be concatenated to form a longer message. 此种短信理论上最长可以将
http://cyqdata.cn/cnblogs/article-detail-32562
WPF <ZoomableCanvas> 实现缩放移动
熟悉WPF 的朋友应该知道Canvas 默认是不支持Scale 和Offset 操作的,如果我们想对Canvas 里包含的控件进行整体缩放或移动可能会比较麻烦。Kael Rowan 提供了ZoomableCanvas 类可以方便实现上述效果。我们可以在XAML 中直接使用<ZoomableCanvas> 对控件布局进行开发,而不需要使用
http://cyqdata.cn/cnblogs/article-detail-32409
CCIE中的portfast和Bpdu Guard、Bpdu Filter、Root Guard、Loop Guard
PortFast 加快终端主机连接入stp网络的收敛.只适用于在交换机与PC相连的端口,不应该在交换机与交换机,路由器,HUB互连的网络设备的端口使用。
把一个port设置了portfast,就是让那个port不再使用STP的算法。在STP中,port有5个状态:disable、blocking、listening、learning、forwarding。只有forwarding状态,p
http://cyqdata.cn/cnblogs/article-detail-32400
山寨UnityContainer.Resolve<T>的实现
听说基于Ioc+AOP编程是在半年前,IoC是个什么,至今没理解太深入,看到一些开源的项目都有用到Unity,interface横行。
试着写了个Demo小试了下Unity,原来是UnityContainer.Resolve<T>来创建对象实例。
从用途上来看,我就觉得Unity是个基于xml配置创建对象实例的地方,而避免在代码里直接引用子类。挺酷的,比工厂模式多了基于配置。
可自己在
http://cyqdata.cn/cnblogs/article-detail-32325
Silverlight实用窍门序列:13.基于Popup浮动窗体控件模拟ToolTip的实现【附带实例源码】
本节是基于第四节的源码基础上进行扩展的源码,故本节源码附带有鼠标右键和全屏功能。
在本节,我们将讲述一个小技巧:使用Popup浮动窗体控件模拟Tip悬浮效果。此技巧的原理是当鼠标移动到某个控件上面的时候会触发MouseMove事
http://cyqdata.cn/cnblogs/article-detail-28637
C# 谈Dictionary<TKey,TValue>,SortedDictionary<TKey,TValue>排序
使用过Dictionary的人都知道,当每一个Add里面的值都不会改变其顺序,所以需要需要对其排序的时候就用到SortedDictionary,但SortedDictionary并不是那么理想,其默认的方式只支持正序排序,想要反序排序时必须得靠自己重新编写代码,下面来看一个简单的例子:
测试环境为Web,如在WinForm下,调试则只需改一下输出语句即可。
如以下代码在调试时不能使用则需要引用:
http://cyqdata.cn/cnblogs/article-detail-28612