静态预定义的类实例

时间:2018-01-08 22:19:29

标签: c# object static const instance

我希望不要复制,但我找不到我正在寻找的东西。

我正在开发一个带有个人区域的Asp.Net MVC网站,您可以在该网站上购买该应用程序的订阅。我有3个订阅计划,它们都是同一类的对象。

我在想是否可以将这3个对象创建为具有不同值的常量并将它们放在静态类中。 这样做的最佳方式是什么?

我想使用Subscriptions.ONE_MONTHSubscriptions.SIX_MONTHS之类的内容检索订阅对象。

2 个答案:

答案 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;
}