首先,请原谅我的问题的相当有趣的名字。我不是母语人士,我花了 10 分钟用这几个角色表达我的想法。
我想要做的是在 C# 中创建一个字典,允许值是 a int
、 astring
或 a bool
。我首先想到的是使用泛型,但据我所知,我只能将一种类型定义为可能的值类型,而不是“成为其中之一”。使用object
也是可能的,但拳击似乎是一个性能杀手。
有没有办法做到这一点?
这是我想到的一个示例:
Dictionary<string, (string, int, bool)> foo = new Dictionary<string, (string, int, bool)>();
foo.Add("key1", "Hello, World!"); //Correct - Value is a string
foo.Add("key2", 37); //Correct - Value is an int
foo.Add("key3", true); //Correct - Value is a boolean
foo.Add("key4", new Foobar()); //Compiler error - Value is a Foobar
我的最终目标是为其他开发人员提供一个库。这个特性应该使他们能够在运行时定义“变量”并给他们一个类型。
Edit://Firefox' about:config 页面的内容非常接近我想要实现的目标