首页 / C# / c# – 如何返回未知类型的值?
c# – 如何返回未知类型的值?
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了c# – 如何返回未知类型的值?,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1690字,纯文字阅读大概需要3分钟。
内容图文
我面前有一个非常抽象的问题.
我有一个具有Dictionary< string,object>类型的公共属性的类.这本词典的工作是保存自定义用户设置及其值.
设置没有限制,但通常类似于:
“亮度”,100
“连接,”TCP“
因此,当我实例化此类时,其字典属性将填充设置的名称及其对应的值.
问题是检索一个值.
由于值可以是整数,字符串等,因此它们作为对象存储在字典中,但我需要将它们作为具体类型进行检索.
虽然我可以使用dict [“Brightness”].GetType()来找出匹配的类型或使用模式我无法确定要使用哪种方法返回类型.
我想,也许,我可以为每种类型使用单独的“结果”属性,并根据值的类型将相应的值分配给正确的属性,所以就像“亮度”是100,然后有一个方法来测试“亮度”的值的类型,并在看到它是int之类的东西
int resultInt;
resultInt = (int)dict["Brightness"];
但是有些东西告诉我这很难看,有更好的方法.
此外,这不是线程安全的.
有关该计划目的的其他信息:
该程序的想法是,基本上能够为不同的系统存储一堆设置及其值.它们始终处于键值关系中,键是唯一的,值可以是任何值.它们可以是字符串,整数,浮点数,小数等.在某种程度上,程序的目的是用户自定义.
我的意思是 – 用户输入他想要存储的设置.他输入的内容将成为程序可以使用的完整可能设置列表.然后,他为每个系统或“设备”输入这些设置的值.因此,例如,他说“我有一台电脑和一部智能手机”.将“亮度”和“CPU”设置输入程序.现在程序知道他配置的所有系统将具有这两个设置,可能具有与之关联的不同值.
那么用户可以说“我希望我的智能手机屏幕亮度为80%”.所以他输入int“80”作为与他的智能手机相对应的条目的“亮度”的值.同样,他可以为他的家用电脑输入不同的值.
底线我永远不知道需要存储哪些类型.
解决方法:
如果您在编译时不知道字典中的类型是什么,则可以使用动态标记(重新编写Patrick的示例):
public dynamic GetValueOrDefault(string key)
{
if (this.dictionary.TryGetValue(key, out object o))
{
return o;
}
return null;
}
使用案例:
int val;
val = dict.GetValueOrDefault("Brightness");
内容总结
以上是互联网集市为您收集整理的c# – 如何返回未知类型的值?全部内容,希望文章能够帮你解决c# – 如何返回未知类型的值?所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。