<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[Rondapapi的博客]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/Rondpapi</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; Rondpapi]]></copyright><item><title><![CDATA[C# 用散列表设计一个集合类]]></title><link>https://blog.youkuaiyun.com/Rondpapi/article/details/53912987</link><guid>https://blog.youkuaiyun.com/Rondpapi/article/details/53912987</guid><author>Rondpapi</author><pubDate>Wed, 28 Dec 2016 20:04:20 +0800</pubDate><description><![CDATA[集合的主要操作包括：并集、交集、判断是否为子集、取差异集合。
C# 中没有提供集合数据类型或集合数据结构，用散列表作为基本数据存储是设计集合类型的比较有效的方式。
其中，设计的一个关键就就，要先创造一个临时存储数据的实例，在本代码中，用命名为 temp。
    public class CSet
    {
        Hashtable data;
        public CS]]></description><category></category></item><item><title><![CDATA[C# 二叉树的综合操作（二）：删除节点]]></title><link>https://blog.youkuaiyun.com/Rondpapi/article/details/53908423</link><guid>https://blog.youkuaiyun.com/Rondpapi/article/details/53908423</guid><author>Rondpapi</author><pubDate>Wed, 28 Dec 2016 14:41:52 +0800</pubDate><description><![CDATA[删除二叉树的节点相对复杂一些。 要分为三种情况：（1）要删除的节点为叶子节点，即此节点没有子节点；（2）要删除的节点只有一个子节点；（3）要删除的节点有两个子节点。其中每种情况又要细分为同种情况：要删除的节点是其父节点的左子节点，以及，要删除节点是其父节点的右子节点。
    删除操作需要用到上一章说的到的“查找方法”。将上一章的代码加入 Delete（int key）方法，完事代码好    p]]></description><category></category></item><item><title><![CDATA[C# 二叉树的综合操作（一）：查找、插入、最大（小）值、先序遍历、后序遍历及中序遍历]]></title><link>https://blog.youkuaiyun.com/Rondpapi/article/details/53908096</link><guid>https://blog.youkuaiyun.com/Rondpapi/article/details/53908096</guid><author>Rondpapi</author><pubDate>Wed, 28 Dec 2016 14:13:31 +0800</pubDate><description><![CDATA[二叉树是学习数据结构与算法的重要内容，现做综合操作二叉树的汇总。由于关于这方面的文章、书籍已是随处可见，故此间的细节不再赘述，附上一段代码，并提供实例，供参考。代码已测试没有问题。
    public class Node                             // 定义二叉树节点类 Node
    {
        public int Data;
        pu]]></description><category></category></item><item><title><![CDATA[C# 性能测试程序及编写要点]]></title><link>https://blog.youkuaiyun.com/Rondpapi/article/details/53453407</link><guid>https://blog.youkuaiyun.com/Rondpapi/article/details/53453407</guid><author>Rondpapi</author><pubDate>Sun, 04 Dec 2016 11:31:08 +0800</pubDate><description><![CDATA[直接看程序：
    class Timing
    {
        TimeSpan timestart;
        TimeSpan duration;
        public void Start()
        {
            GC.Collect();
            GC.WaitForPendingFinalizers();]]></description><category></category></item><item><title><![CDATA[C#代码性能测试程序编写要点]]></title><link>https://blog.youkuaiyun.com/Rondpapi/article/details/53453241</link><guid>https://blog.youkuaiyun.com/Rondpapi/article/details/53453241</guid><author>Rondpapi</author><pubDate>Sun, 04 Dec 2016 11:06:22 +0800</pubDate><description><![CDATA[直接看程序：
    class Timing
    {
        TimeSpan timestart;
        TimeSpan duration;
        public void Start()
        {
            GC.Collect();
            GC.WaitForPendingFinalizers();]]></description><category></category></item><item><title><![CDATA[浅谈 C# 协变与逆变中 “out” 与 “in” 关键字的必要性]]></title><link>https://blog.youkuaiyun.com/Rondpapi/article/details/52959717</link><guid>https://blog.youkuaiyun.com/Rondpapi/article/details/52959717</guid><author>Rondpapi</author><pubDate>Fri, 28 Oct 2016 20:51:07 +0800</pubDate><description><![CDATA[近来经常涉及泛型委托及接口的协变与逆变的问题，在网上搜索的时候，人们都是在反复地强调协变和逆变的概念，强调什么时候要加关键词out，什么时候要加in。可是鲜有人去说明：为何这时要用out，为什么就必须要用in。下面我就在文章中稍作一下解释，可能解释的有不妥的地方，欢迎指正。
        首先先说说协变，先说泛型委托中的协变，看例子：

class Animal { public int]]></description><category></category></item><item><title><![CDATA[c# 泛型中类型参数约束 之 主约束的解读]]></title><link>https://blog.youkuaiyun.com/Rondpapi/article/details/52933600</link><guid>https://blog.youkuaiyun.com/Rondpapi/article/details/52933600</guid><author>Rondpapi</author><pubDate>Wed, 26 Oct 2016 13:59:21 +0800</pubDate><description><![CDATA[在一本书中看到 ”主约束“ 一词，比较生疏。百度了一下，竟然没找到解释，经过测试，终于搞懂了。既然如此，那我就就此写一篇，希望能帮助到遇到同样困惑的筒子们。
        参数约束主要有六种：（下表摘自 
MSDN 的表格）






where T: struct



类型参数必须是值类型。  可以指定除 Nullable 以外的任何值类型。  



]]></description><category></category></item><item><title><![CDATA[如何将基类的引用转换为派生类的引用]]></title><link>https://blog.youkuaiyun.com/Rondpapi/article/details/52912254</link><guid>https://blog.youkuaiyun.com/Rondpapi/article/details/52912254</guid><author>Rondpapi</author><pubDate>Mon, 24 Oct 2016 15:35:52 +0800</pubDate><description><![CDATA[程序（1）：
    class A { public int AValue; }
    class B :A { public string BName { set; get; } }
    class Program
    {
        static void Main(string[] args)
        {
            B bTest1 = n]]></description><category></category></item></channel></rss>