文档章节

C#范型默认类型

梦想游戏人
 梦想游戏人
发布于 2017/03/23 15:04
字数 277
阅读 15
收藏 0

语法糖,这种方法使用起来和默认范型参数用法是一样的 类似于C++模板特化

HashTable 默认类型就是string 

/*
* Author:  caoshanshan
* Email:   me@dreamyouxi.com

 */
using UnityEngine;
using System.Collections;

public sealed class HashTable
{

    public static HashTable Create()
    {
        HashTable ret = new HashTable();
        return ret;
    }

    public static HashTable CreateWithJson(string json)
    {
        return Json.Decode(json);
    }
    private HashTable() { }
    private Hashtable kv = new Hashtable();

    public int GetInt(string key)
    {
        return int.Parse(this.Get(key));
    }

    public float GetFloat(string key)
    {
        return float.Parse(this.Get(key));
    }

    public void Set(string key, string value)
    {
        if (kv.Contains(key))
        {
            kv[key] = value; return;
        }
        kv.Add(key, value);
    }
    public string this[string key]
    {
        get
        {
            return this.Get(key);
        }

        set
        {
            this.Set(key, value);
        }
    }
    public string Get(string key)
    {
        if (kv.Contains(key))
        {
            return kv[key] as string;
        }
        return "";
    }
    public int Count
    {
        get
        {
            return kv.Count;
        }
    }

    public Hashtable GetHashtable()
    {
        return kv;
    }

    public string ToJson()
    {
        return Json.Encode(this);
    }
}

public sealed class HashTable<T>/// where T : class,new()
{

    public static HashTable<T> Create<T>()
    {
        HashTable<T> ret = new HashTable<T>();
        return ret;
    }

    public static HashTable<T> CreateWithJson<T>(string json)
    {
        return null;// Json.Decode(json);
    }

    private Hashtable kv = new Hashtable();

    public T Get<T>(string key)
    {
        return (T)(this.Get(key)) ;
    }

    public void Set(string key, object value)
    {
        if (kv.Contains(key))
        {
            kv[key] = value; return;
        }
        kv.Add(key, value);
    }
    public object this[string key]
    {
        get
        {
            return this.Get(key);
        }

        set
        {
            this.Set(key, value);
        }
    }
    public object Get(string key)
    {
        if (kv.Contains(key))
        {
            return kv[key];
        }
        return null;
    }
    public int Count
    {
        get
        {
            return kv.Count;
        }
    }

    public Hashtable GetHashtable()
    {
        return kv;
    }

    public string ToJson()
    {
        return "";// Json.Encode(this as hASH);
    }
}

 

© 著作权归作者所有

共有 人打赏支持
梦想游戏人
粉丝 36
博文 429
码字总数 122069
作品 0
成都
Java 数组转型和范型

今天写代码遇到一个奇怪的问题,代码结构如下: ArrayList list = new ArrayList();String strings[] = (String[]) list.toArray();这样写代码个人觉得应该没什么问题,编译也没有问题。可是...

长平狐
2013/01/06
147
0
为什么要创建Fantom语言[翻译]

标题:WhyFantom作者:Brian Frank创建世界:6 Dec 07版权:Copyright (c) 2007, Brian Frank and Andy Frank许可:Licensed under the Academic Free License version 3.0 概述 我们真的需要另外......

chunquedong
2015/09/10
153
0
WCF技术剖析之十四:泛型数据契约和集合数据契约(上篇)

[爱心链接:拯救一个25岁身患急性白血病的女孩[内有苏州电视台经济频道《天天山海经》为此录制的节目视频(苏州话)]]在.NET Framework 2.0中,泛型第一次被引入。我们可以定义泛型接口、泛型...

长平狐
2012/09/04
108
0
新JVM语言比较:Ceylon vs Kotlin vs Fantom

现存的计算机编程语言有好几千种,JVM上的语言也有十几种,所以大可不必为没听说过的编程语言感到惊奇。 Java的缺陷 由于工作的原因,对Java比较了解。从Java中我们总结的教训: 对象可以赋值...

chunquedong
2015/09/07
1K
2
C#反射实践续

前回在C#反射实践的文章中,只介绍了利用反射如何把Xml文件中的数据读取设定到类对象的属性中的方法,这回来介绍如何利用反射机制把值对象写入Xml文件的方法 本文介绍的把值对象写入Xml文件的...

长平狐
2012/10/16
170
0

没有更多内容

加载失败,请刷新页面

加载更多

一个可能的NEO链上安全随机数解决方案

0x00 困境 链上安全随机数生成应该算是一个比较蛋疼的问题,哪怕你的系统再牛逼,合约程序困在小小的虚拟机里,哪怕天大的本事也施展不开。 更悲催的是,交易执行的时候,是在每一个节点都执...

暖冰
35分钟前
0
0
【大福利】极客时间专栏返现二维码大汇总

我已经购买了如下专栏,大家通过我的二维码你可以获得一定额度的返现! 然后,再给大家来个福利,只要你通过我的二维码购买,并且关注了【飞鱼说编程】公众号,可以加我微信或者私聊我,我再...

飞鱼说编程
今天
1
0
Spring5对比Spring3.2源码之容器的基本实现

最近看了《Spring源码深度解析》,该书是基于Spring3.2版本的,其中关于第二章容器的基本实现部分,目前spring5的实现方式已有较大改变。 Spring3.2的实现: public void testSimpleLoad(){...

Ilike_Java
今天
1
0
【王阳明心学语录】-001

1.“破山中贼易,破心中贼难。” 2.“夫万事万物之理不外于吾心。” 3.“心即理也。”“心外无理,心外无物,心外无事。” 4.“人心之得其正者即道心;道心之失其正者即人心。” 5.“无...

卯金刀GG
今天
2
0
OSChina 周三乱弹 —— 我们无法成为野兽

Osc乱弹歌单(2018)请戳(这里) 【今日歌曲】 @ _刚刚好: 霸王洗发水这波很骚 手机党少年们想听歌,请使劲儿戳(这里) hahahahahahh @嘻酱:居然忘了喝水。 让你喝可乐的话, 你准忘不了...

小小编辑
今天
12
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部