2013-01-11 51 views
3

的情況是如何調用方法內的構造函數在C#

隱藏的BankAccount的構造。並且爲了建設 BankAccount,創建一個名爲CreateNewAccount的公共靜態方法 負責創建並返回 請求的新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 void CreateNewAccount() 
{ 
    Console.WriteLine("\nCreating a new bank account.."); 
    BankAccount(); 
} 

但這種不斷拋出的錯誤。我不知道如何在同一類中的方法中調用構造函數

回答

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; 
     } 
    } 
+0

太謝謝你了:)它的工作原理..我還是一個新手 –

+0

@GireeshSundaram歡迎您) – horgh

+3

@GireeshSundaram,因爲這是你的第一個問題,看起來你有你正在尋找的答案,你可能會看到:[接受答案的工作原理](http://meta.stackexchange.com/questions/5234/how-接受一個答案的工作) – Habib

0

使用new操作符:

Foo bar = new Foo(); 
+0

這不是問題所在... –

+1

是的。 'new'在C#中調用一個類的構造函數。我只是沒有使用他的班級名稱。相反,我使用'Foo'作爲類型名稱。 – bash0r

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

非常感謝你:)它的工作..我仍然是一個新手 –

相關問題