【发布时间】:2019-04-23 17:52:59
【问题描述】:
对不起,如果这个问题的措辞不正确;我来自 Javascript/Typescript 背景。
我要创建的是一组不可变的键/值对,IDE/编译器将知道哪些键存在或不存在于该列表中。我认为这对于一个类是可能的,也许这确实是最好的选择,但我有兴趣了解是否有其他选择。
例如,对于应用程序的配置,我可以在 Typescript 中:
const config = {
applicationName: 'Some application',
port: 8000,
};
const testOne = config.applicationName;
const testTwo = config.fail; // this would not work
也就是说,编译器或 IDE 使用的某些解释器能够根据结构判断该结构不存在键/值。
在我看来,一个类对于这种数据来说是多余的;虽然我对这门语言比较陌生,这可能是由于我的天真。我想知道 C# 中是否有一个结构可以以不可变的方式存储键和值,并在编译时知道该集合中是否有键/值对。
【问题讨论】:
-
喜欢Dictionary ?
-
我认为 IDE/编译器不会检查集合的内容。是的,您正在寻找创建一个类。
-
啊,我想我误解了你的问题。你想知道,在编译之前
myObj.PropertyThatDoesExistIDE 是否会显示错误? -
我不确定我是否理解这个问题。您是否尝试过使用课程?您尝试过哪些 C# 代码没有为您提供此功能?另外,“不会工作”,究竟是什么意思?编译器错误?运行时错误?我问的原因是开箱即用,如果您对成员使用类型,这将完全符合您的要求。只需创建一个具有两个属性 ApplicationName 和 Port 的类,就不能在其上设置任意值。
-
The is an XY Problem (Question)。也就是说,您正在尝试使用您有疑问的解决方案来解决问题,而不是实际提出真正的问题。你有所有这些要求(比如不可变的),但没有描述为什么需要它们。这不是一个好问题。
标签: c#