我需要帮助初始化c#中的静态只读变量.我有一个有这个签名的课程
public class AgentDescriptions
{
public static readonly int P1;
public static readonly int P2;
static AgentDescriptions()
{
int agencyID = 1; //I need to pass this in the constructor somehow
P1 = GetIDFromDB(agencyID);
P2 = GetIdFromDB(agencyID);
}
}
Run Code Online (Sandbox Code Playgroud)
P1和P2在应用程序中反复使用,我试图避免两件事.1)每次我需要使用P1和P2时,幻数和2)跳转到DB.
在应用程序中,我以这种方式在许多地方使用它们
if (something == AgentDescriptions.P1)
//Blah();
Run Code Online (Sandbox Code Playgroud)
请帮忙.如何在静态构造函数中传递agencyID?如果我添加另一个构造函数并在那里传递agencyID,我每次使用它时都必须初始化该类吗?这是否意味着每次都要去DB?
为什么这个类是静态的.如果您将变量传递给构造函数,则表示对象的实例具有状态,而不是类.
我将变量私有成员变量与只有get方法可用.然后你有一个构造函数,它接受代理ID并设置这两个变量.如果需要维护此类型的单个实例,则使用单例(类中的静态函数存储对象的单个实例,或者如果尚不存在则创建新对象).另一方面,如果您需要具有不同代理商ID的多个对象,您已经有了一种机制来实现这一点.
| 归档时间: |
|
| 查看次数: |
762 次 |
| 最近记录: |