小编Moo*_*Moo的帖子

将二维整数存储为独立类中的Readonly/const,同时保持不暴露

这是我用这个地方作为我的"去"以获得关于什么有效/无效/为什么等的一般意见的第一个问题.那么让我们试试吧......

凭借我有限的经验,我一直试图找到更好的创建固定数据字段的方法,我可以在整个程序中参考这些字段 - 例如我反复显示的最终用户可查看的字符串以及其他参数.我希望保持不变并保持安全.我将我重用的数据保存在单独的静态类中,并将我的字符串放在我private static readonly通过私有包装公开的数组中,ILists这些包含公共getter,它返回我追求的单个字符串.希望到目前为止我还没有滥用术语!到目前为止我做了什么:

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; } }
    }
}
Run Code Online (Sandbox Code Playgroud)

我理解的很多,但现在我有一个二维数据表(int),我需要以一种我可以访问的类似非暴露的方式存储.
这个数据正在进入它自己的类,因为现在我正在处理一个单独的真实数据类型.实际情况 - 我有不同的燃料及其相关的燃烧常数,我需要使用我从气体分析仪获得的数据进行燃烧分析.所以我想保持这些数组/列表与他们所有的方法分开,但我似乎无法弄清楚如何做到这一点.

如果我喜欢我之前做过并通过数组路径(但这次是2D),那么我遇到的问题似乎(根据MSDN上的信息)Array.AsReadOnly(myArray)只适用于一维数组.我不够精明,不知道如何编写我自己的解决方案(假设这是一个足够简单的任务).那么如果我去尝试使用锯齿状数组,因为这似乎是我发现的另一条可行路径,我会陷入困境,试图弄清楚如何以及在何处创建初始锯齿状数组(构造函数或类方法)和那么在那里初始化数组呢?

如果我不需要保护数组,那么我可以将它全部放在构造函数中,这可能没问题(据我所知,到目前为止)但我必须保持它不暴露.第一种方式我理解程序化如何适应类,但试图使用非暴露的锯齿状数组让我陷入困境.我在网上看到的所有例子似乎都是创建它们并初始化main其中很好(虽然暴露)但是当我把它放在其他地方时,如何让它可用于任何可能需要数据而不暴露它们的东西?

希望你理解为什么我觉得我要进入圈子,也许答案非常简单,我错过了显而易见的但是直到我看到其他人做类似的事情,我无法弄明白,我也无法理解找到足够接近的东西来给我提供线索.如果在SO上已经存在类似的帖子,请指出我的方向.就像我说的那样,我已经搜索了MSDN,SO并在网上搜索面包屑.

如果您需要更多关于我一直在努力的信息并感谢阅读,请告诉我.

我刚刚在这个问题上添加了标签,看到有一个数据标签,所以我想知道我是否可以在那里缩小范围.不确定我是否应该添加该标签,我还可以添加列表......?

c# .net-4.0

3
推荐指数
1
解决办法
621
查看次数

标签 统计

.net-4.0 ×1

c# ×1