构造函数有2个形参,但用1个实参调用



我有以下类:

public class Notifications
{
    public static Notifications Instance = new Notifications();
    public NotificationHubClient Hub { get; set; }
    private Notifications() {
        Hub = NotificationHubClient.CreateClientFromConnectionString(
"<conn string with full access>", "<hub name>");
    }
}

我试图修改代码动态传递连接字符串的值和hub的名称构造函数,我改变了构造函数:

private Notifications(string connectionString,string hubName) {...}

我现在的问题是与Instance,你可以注意到它调用构造函数没有参数,我试图改变它,但它没有工作:

public static Notifications Instance = new Notifications(
string connectionString,string hubName);

我该怎么做才能使Instance调用构造函数并传递这两个参数?

Instance不能访问这些参数值-它必须为它们提供值!

所以你可以这样做:

public static Notifications Instance = new Notifications("<conn string with full access>", "<hub name>");

听起来好像完全不需要Instance成员。您可能只是想使用一个非常普通的公共构造函数,然后可以在其中传递参数。这样的:

public class Notifications
{
    public NotificationHubClient Hub { get; set; }
    public Notifications(string connString, string hubName) {
        Hub = NotificationHubClient.CreateClientFromConnectionString(
        connString, hubName);
    }
}

最新更新