gpt4 book ai didi

c# - "Store"稍后在 C# 中使用的类型参数?

转载 作者:太空宇宙 更新时间:2023-11-03 19:33:23 25 4
gpt4 key购买 nike

我正在我的应用程序中创建一个设置对象,用于存储用户定义的设置和诸如此类的东西。我计划为我的设置字段使用各种数据类型(整数、字符串、枚举,任何可序列化的,真的)。

如果可能的话,我还想要一种类型安全的方式来设置任何设置。我建议的方法是做这样的事情:

Tuple<string, Type> SettingName = new Tuple<string, Type>("NumberOfFoos",
typeof(**TYPE**));
public void Set(Tuple<string, Type> key, **TYPE** value) { /* Stuff */ }

元组实际上是用户将值推送到的“设置”,并且包含该设置的键以及该设置的类型。我想知道是否有任何方法可以让编译器在 Set() 中强制执行它方法,value 的类型与传递给 Set() 的元组中保存的类型对象属于同一类型?我提议的方式是否可行?谢谢!

编辑:我想到了一些我应该澄清的事情。

1) 这是一个静态类,因此我无法序列化整个类,只能序列化其中的成员。因此,我真的不想为每个字段处理序列化。我计划将所有设置值存储在 Dictionary<string, **TYPE**> 中并将其序列化。

2) Tuple定义应该是恒定的和静态的。我真的更多地把它们当作 typedef 类型的东西(我真的应该制作自己的 SettingKey 结构),用户将其传递给 Set以指示他们正在更改的字段。 Type 参数旨在强制执行 value参数为指定类型。

最佳答案

有点像

public void Set<T>(Tuple<string,T> key, T value) { /* stuff */ }

可能会做

关于c# - "Store"稍后在 C# 中使用的类型参数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3679049/

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