C# 如何在C控制台应用程序中写入包含多个值的常量?

C# 如何在C控制台应用程序中写入包含多个值的常量?,c#,C#,假设我想创建一个常数,在C中它将为我返回双倍的交换费。下面是我在JavaScript中要做的: var exchangeFees = { fidelity: .25, etrade: .2, scottTrade: .15 } 通过这种方式,我可以导入它,并将其作为一种enum:exchangeefees.fidelity来工作,这将为我提供所需的费用,而且很清楚。在Typescript中,我会做一些不那么理性的事情: //I just realized this could ju

假设我想创建一个常数,在C中它将为我返回双倍的交换费。下面是我在JavaScript中要做的:

var exchangeFees = {
  fidelity: .25,
  etrade: .2,
  scottTrade: .15
}
通过这种方式,我可以导入它,并将其作为一种enum:exchangeefees.fidelity来工作,这将为我提供所需的费用,而且很清楚。在Typescript中,我会做一些不那么理性的事情:

//I just realized this could just be a static class after I typed this
export class ExchangeFees {
  FIDELITY: number;
  ETRADE: number;
  SCOTTTRADE: number; 

  constructor() {
    this.FIDELITY= .25;
    this.ETRADE= .2;
    this.SCOTTTRADE = .15;

  }
}

export const exchangeFees : ExchangeFees = new ExchangeFees ();
这看起来像地狱,但Javascript,Chu将要做什么,等等。这在C语言中似乎有点像黑客,我是否只是创建了一个静态类,然后像这样把它放在一个Constants.cs文件中?有更好的办法吗

public static class ExchangeFess
{
    public static double Fidelity = .25;
    public static double Etrade = .2;
    public static double ScottTrade = .15;
}
我读了答案,我应该把它放在AppSettings中,还是没有意义


我意识到这是一个101个问题,但我不确定我是否能清楚地回答这个问题。

你的回答很好。另一种选择是写:

public sealed class ExchangeFess
{
    public const double Fidelity = .25;
    public const double Etrade = .2;
    public const double ScottTrade = .15;
}
为了使磁场保持恒定。然而,这也有其自身的缺点,请参见

然而,您的值似乎并不是恒定不变的,并且几乎肯定不应该被烘焙到您的代码中。您应该使用某种类型的配置系统。AppSettings确实提供了此功能,但对我来说,它似乎不是正确的位置。我有一个配置文件或数据库,应用程序在启动时从中读取


然后,按原样使用代码,但将硬编码值替换为对配置的可选缓存查找。

有几种方法可以做到这一点: 1:您可以像前面所说的那样,创建一个包含常量的静态类。 2:在类中创建常量 3:枚举不起作用,它只使用int,在您的示例中,使用double 他说:你可以想出一个办法来使用一个。
5:这是一种不太漂亮的解决方案:使用枚举和一个函数进行一些计算并返回正确的双重结果。

您考虑过使用枚举吗?是的,iirc有一个额外的步骤来获取实际值,现在检查示例。@Sweeper如果我没记错的话,不能有类型为的枚举double@YagnaPatel据我所知,枚举只是int,而且获取该值需要额外的步骤:intExchange.Fidelity;