我希望不要复制,但我找不到我正在寻找的东西。
我正在开发一个带有个人区域的Asp.Net MVC网站,您可以在该网站上购买该应用程序的订阅。我有3个订阅计划,它们都是同一类的对象。
我在想是否可以将这3个对象创建为具有不同值的常量并将它们放在静态类中。 这样做的最佳方式是什么?
我想使用Subscriptions.ONE_MONTH
或Subscriptions.SIX_MONTHS
之类的内容检索订阅对象。
答案 0 :(得分:1)
执行此操作的理想方法是将三个计划作为静态类的public static
仅限getter属性。您可以在内联或类的静态构造函数中创建实例。
public static PlanA { get; } = new Plan(...);
答案 1 :(得分:-1)
有几种可能的方法可以做到这一点。您可以使用公共字段或属性创建静态类:
public static class Subscriptions
{
public static whateverType OPTION_1 = whateverValue;
public static whateverType OPTION_2 = whateverValue;
public static whateverType OPTION_3 = whateverValue;
}
public static class Subscriptions
{
public static whateverType OPTION_1 => whateverValue;
public static whateverType OPTION_2 => whateverValue;
public static whateverType OPTION_3 => whateverValue;
}
或者如果值是基本类型的枚举:
public enum Subscriptions
{
Option_1,
Option_2,
Option_3
}
如果你想使用一个可能有多个值的枚举,你可以使用Flags属性:
[Flags]
public enum Subscriptions
{
Option_1 = 1,
Option_2 = 2,
Option_3 = 4
}
你应该避免的一件事是在非静态类中使用公共常量值(原因见this question):
public class Subscriptions
{
public const whateverType OPTION_1 = whateverValue;
public const whateverType OPTION_2 = whateverValue;
public const whateverType OPTION_3 = whateverValue;
}