当前位置:  开发笔记 > 编程语言 > 正文

使用Generics获取随机数据

如何解决《使用Generics获取随机数据》经验,为你挑选了1个好方法。

我们的一个单元测试是使用随机数据填充业务对象中的属性.

这些属性具有不同的内在类型,因此我们希望使用泛型的功能来返回您传入的类型的数据.有些内容如下:

public static T GetData()

你会如何接近这个?低级别界面会起作用吗?(IConvertible)



1> Jon Skeet..:

您可以保留"易于使用"的GetData接口,但内部有一个Dictionary ,其中每个值都是相关类型的Func .然后GetData将具有如下实现:

public static T GetData()
{
    object factory;
    if (!factories.TryGet(typeof(T), out factory))
    {
         throw new ArgumentException("No factory for type " + typeof(T).Name);
    }
    Func factoryFunc = (Func) factory;
    return factoryFunc();
}

然后,您可以在静态初始化程序中设置工厂字典,并为要创建的每种类型的随机数据设置一个委托.在某些情况下,您可以使用简单的lambda表达式(例如,对于整数),在某些情况下,委托可以指向执行更多工作的方法(例如,对于字符串).

顺便说一下,您可能希望将我的StaticRandom类用于线程安全的RNG.

推荐阅读
和谐啄木鸟
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有