首页 > 解决方案 > 具有定义集中的键的键/值对

问题描述

对不起,如果这个问题的措辞不正确;我来自 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# 中是否有一个结构可以以不可变的方式存储键和值,并在编译时知道该集合中是否有键/值对。

标签: c#

解决方案


使用匿名类型

var obj = new
{
    applicationName = "",
    port = 9000
};

var name = obj.applicationName;
var something = obj.fail; //doesn't compile

虽然,我真的鼓励你创建类并给它们命名,因为你可以从 API 中公开它们。


推荐阅读