小编Jos*_*hua的帖子

什么C#数据类型应该用于部分不变的信息集?

我正在编写一个C#应用程序,用棒球统计数据做一些事情.我从XML Web服务获取数据.我想完全分离演示文稿 - 业务数据层.我徒劳地创建了一个服务类来与Web服务进行交互,并从数据创建对象,一组业务类(即玩家,团队,联盟)以及我的表示层所需的对象.

我不想将统计信息加载到播放器类中,因为有超过200个统计信息,而且每次实例化播放器类时我都不需要它们.对于每个统计信息,我需要它的缩写,描述,XML属性名称和值.

问题:可以使用哪些C#数据结构或方法来呈现两个以上的属性,并允许其中几个属性在数据类型的所有实例中保持静态,并允许至少一个在运行时可写?

我开始创建一个像这样的"统计"类:

public class BaseballStatistic
{
    public string Abbreviation;
    public string Description;
    public string XmlAttributeName;
    public string Value;

    public BaseballStatistic(string abbreviation, string description, string xmlAttributeName)
    {
        Abbreviation = abbreviation;
        Description = description;
        XmlAttributeName = xmlAttributeName;
    }
}
Run Code Online (Sandbox Code Playgroud)

这个问题是我永远不需要在运行时更改缩写,描述或XML属性名称.

  • 如果我只需要缩写和值,我会使用Dictionary或其他键/值对.
  • 我开始创建一个带有缩写,描述,XML属性名称和值成员的统计类.但是那些在运行时会改变的唯一一个就是价值 - 所以这感觉不是正确的答案.(想象一下500个玩家,每个玩家都有一系列统计对象,除了值之外,所有玩家的对象都是完全相同的.)
  • 我考虑过创建一个多维数组,但是有这么多常量值,在运行时加载这样的东西似乎很浪费.

我觉得我应该知道这一点.


我应该补充一点:因为我可以使用很多不同的统计数据,如果我找到一个可以将它们暴露给Intellisense的解决方案,那将会很棒.例如:

统计g = Stats.G amesPlayed

c#

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

标签 统计

c# ×1