3

场景是

隐藏 BankAccount 的构造函数。为了允许构造 BankAccount,创建一个名为 CreateNewAccount 的公共静态方法,负责根据请求创建和返回新的 BankAccount 对象。此方法将充当创建新 BankAccounts 的工厂。

我使用的代码就像

private BankAccount()
{
 ///some code here
}

//since the bank acc is protected, this method is used as a factory to create new bank accounts
public static void CreateNewAccount()
{
    Console.WriteLine("\nCreating a new bank account..");
    BankAccount();
}

但这不断抛出错误。我不知道如何在同一个类的方法中调用构造函数

4

3 回答 3

7

对于要成为工厂的方法,它的返回类型应该是BankAccount. 在该方法中,private构造函数可用,您可以使用它来创建新实例:

    public class BankAccount
    {
        private BankAccount()
        {
            ///some code here
        }

        public static BankAccount CreateNewAccount()
        {
            Console.WriteLine("\nCreating a new bank account..");
            BankAccount ba = new BankAccount();
            //...
            return ba;
        }
    }
于 2013-01-11T05:34:47.943 回答
3

您实际上应该BankAccount在该方法中创建一个新实例并返回它:

private BankAccount()
{
    ///some code here
}

//since the bank acc is protected, this method is used as a factory to create new bank accounts
public static BankAccount CreateNewAccount()
{
    Console.WriteLine("\nCreating a new bank account..");
    return new BankAccount();
}
于 2013-01-11T05:35:39.857 回答
0

使用“新”运算符:

Foo bar = new Foo();
于 2013-01-11T05:35:38.907 回答