gpt4 book ai didi

c# - 使用类型和操作在 C# 中查找表

转载 作者:太空宇宙 更新时间:2023-11-03 12:07:16 24 4
gpt4 key购买 nike

我想将我的 many if 更改为查找表。

我有类型和方法。我想把它们配对。

if (propertyType == typeof(bool) || propertyType == typeof(bool?))
DoBool(propertyType);

if (propertyType == typeof(DateTime) || propertyType == typeof(DateTime?))
DoDateTime(propertyType);

if (propertyType == typeof(Guid) || propertyType == typeof(Guid?))
DoGuid(propertyType);

我必须创建一个 Dictionary<Type, Action>() ?或者哪种方法最优雅?

您能否给我一些建议,我可以从哪里开始或在哪里可以找到解决方案?

最佳答案

因为这更多是关于控制代码流而不是纯粹的查找,我可能会使用面向对象的方法并将每个“处理程序”的代码放在单独的类中(在基类中包含公共(public)内容)。

你可以创建一个像

这样的通用接口(interface)
public interface ITypeHandler {
void HandleType(Type type);
}

... 并将处理程序的实现放入 Dictionary<Type, ITypeHandler> 类型的字典中如果你愿意,或者你可以在接口(interface)上有一个属性来揭示它处理的类型,并根据这个属性从(可能是依赖注入(inject)的)处理程序列表中选择。

这增加了关注点分离、可测试性等好处。

(请注意,*Handler 不是一个很好的名称,您必须根据所涉及的场景创建一个更好的名称。)

关于c# - 使用类型和操作在 C# 中查找表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54303500/

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