gpt4 book ai didi

c# - 什么 C# 数据类型应该用于部分常量信息集?

转载 作者:行者123 更新时间:2023-11-30 14:50:57 26 4
gpt4 key购买 nike

我正在编写一个 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;
}
}

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

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

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


我应该补充一点:因为有太多不同的统计数据可供我使用,所以如果我能找到一种解决方案将它们公开给 Intellisense,那就太好了。例如:

Statistic g = Stats.GamesPlayed

最佳答案

听起来您需要一个类来“统计”- 然后是 Dictionary<PlayerStat, int> (或任何值)。

PlayerStat类会知道缩写、描述和 XML 属性名称 - 我建议您可能创建一个 Dictionary<string, PlayerStat>静态地从缩写映射到统计信息,另一个静态地从 XML 属性映射到缩写。

您甚至可能不需要 Dictionary<PlayerStat, int>在你的Player类......你总是可以添加一个索引器或方法来懒惰地查找东西。 (但是要小心——你可能会发现延迟加载很多东西比一次加载所有东西更昂贵。你可能想将统计信息分成几类,并在加载一个类别时加载单个类别的所有统计信息他们的。基本上,如果有一些通常一起使用的统计数据......)

关于c# - 什么 C# 数据类型应该用于部分常量信息集?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35533636/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com