gpt4 book ai didi

c# - 使用泛型获取随机数据

转载 作者:行者123 更新时间:2023-11-30 18:52:18 24 4
gpt4 key购买 nike

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

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

public static T GetData<T>()

您将如何着手解决这个问题?低级接口(interface)可以工作吗? (IConvertible)

最佳答案

您可以保留现有的“易于使用”的 GetData 接口(interface),但内部有一个 Dictionary ,其中每个值都是相关类型的 Func 。 GetData 将有一个实现,例如:

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

然后您将在静态初始值设定项中设置工厂字典,为您要创建的每种类型的随机数据分配一个委托(delegate)。在某些情况下,您可以使用一个简单的 lambda 表达式(例如,对于整数),而在某些情况下,委托(delegate)可以指向一个方法来做更多的工作(例如,对于字符串)。

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

关于c# - 使用泛型获取随机数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/177835/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com