这是我在使用这个地方作为我的“去处”以获取关于什么有效/无效/为什么等的一般意见之后的第一个问题。那么让我们试试这个......
由于我的经验有限,我一直在尝试寻找更好的方法来创建固定数据字段,我可以在整个程序中引用这些字段 - 例如我反复显示的最终用户可查看的字符串和我的其他参数我希望保持不变并免受变化。我将重用的数据保存在单独的静态类中,并将字符串放入private static readonly
我通过使用私有包装来公开的数组ILists
具有返回我想要的单个字符串的公共吸气剂。希望到目前为止我没有滥用术语!
到目前为止我所做的:
namespace MyNamespace
{
public static partial class Tables
{
private static readonly string[] _Messages =
{
"One",
"Two"
};
private static readonly IList<string> MessagesReadOnly = Array.AsReadOnly(_Messages);
public static IList<string> Messages { get { return MessagesReadOnly; } }
}
}
我明白了这么多,但现在我有了一个二维数据表(int
),我需要以类似的非公开方式存储,以便我可以访问。
这些数据将进入其自己的类,因为现在我正在处理单独的现实世界数据类型。
真实场景 - 我有不同的燃料及其相关的燃烧常数,我需要访问这些燃料才能使用从气体分析仪获得的数据执行燃烧分析。所以我想将这些数组/列表与它们的所有方法分开,但我似乎不知道如何做到这一点。
如果我像之前那样通过数组的路径(但这次是 2D),那么我会遇到这样的问题(根据 MSDN 上的信息):Array.AsReadOnly(myArray)
仅适用于一维数组。我不够精明,无法确切地知道如何编写自己的代码来解决这个问题(假设这是一个足够简单的任务)。那么如果我去尝试使用jagged数组,因为这似乎是我发现的另一条可行路线,我陷入困境,试图弄清楚如何以及在哪里创建初始锯齿状数组(构造函数或作为类方法),然后在哪里初始化该数组?
如果我不需要保护数组,那么我可以将其全部放入构造函数中,这可能没问题(据我目前所知),但我必须保持它不暴露。我理解如何以编程方式适应类的第一种方式,但尝试使用非公开的锯齿状数组让我一头雾水。我在网上看到的所有示例似乎都是在其中创建并初始化的main
这很好(虽然暴露了),但是当我把它放在其他地方时,我怎样才能使其可供任何可能需要数据的人使用,同时又不暴露它们呢?
希望你明白为什么我觉得我在兜圈子,也许答案真的很简单,我错过了显而易见的事情,但直到我看到其他人做类似的事情,我无法弄清楚,而且我一直无法找到足够近的东西来给我线索。如果已经存在类似的帖子,请给我指出那个方向。正如我所说,我已经浏览了 MSDN,并在网上寻找面包屑。
如果您需要有关我一直在尝试的内容的更多信息,请告诉我,感谢您的阅读。
我刚刚向这个问题添加了标签,发现有一个数组标签,所以我想看看是否可以进一步缩小范围。不确定我是否也应该添加该标签,我也可以添加列表......?