如何在C#中的方法中调用构造函数

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();
}

但是这一直在抛出错误。我不知道如何在同一类中的方法中调用构造函数。
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;
        }
    }

3
@GireeshSundaram,既然这是您的第一个问题,并且似乎已经得到了您想要的答案,您可以查看:接受答案的工作原理 - Habib
@Habib:我总是使用这个网站来进行所有的搜索查询... 对于这个查询,我没有得到完美的匹配... 尽管我想提供一些答案,但我不够流利,无法与这里的专业人士竞争 ;) - Gireesh Sundaram
1
@GireeshSundaram 我应该在我的回答中提到这一点:构造函数不是一个简单的方法,它用于实际在内存中创建某种类型的实例(构造函数 (C# 编程指南))。要调用构造函数,您应该使用 new 运算符 new 运算符 (C# 参考) - horgh

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();
}

0
使用 'new' 运算符:
Foo bar = new Foo();

1
它是这样的。在C#中,'new'调用一个类的构造函数。我只是没有使用他的类名,而是使用了“Foo”作为类型名称。 - bash0r

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接