2017-02-13 1 views
-6

Ich habe eine kurze Frage. Ich habe eine Klasse Bank, die eine Eigenschaft mit verschiedenen Mengen von Konstruktoren haben muss.Eigenschaft fragt verschiedene Mengen von Konstruktoren

class Program 
{ 
    static void Main(string[] args) 
    { 
     Bank ing = new Bank("ing"); 
     int AccountNrName1 = ing.OpenAccount("Name", "LastName", "HouseNumber", "PostalCode"); 
     int AccountNrName2 = ing.OpenAccount("Name", "LastName", "HouseNumber", "PostalCode", Balance, Minimum); 
} 

Der Konstruktor "OpenAccount" hat, beide Fälle zurückzukehren (AccountNrName1, AccountNrName2). Hier ist, was ich bisher:

public class Bank 
{ 
    private string name, lastname, housenumber, postalcode; 
    private int openaccount; 
    private int balance; 
    private int min; 

    public int OpenAccount(string Name, string LastName, string HouseNumber, string PostalCode, int Balance, int Min) 
    { 
     name = Name; 
     lastname = LastName; 
     housenumber = HouseNumber; 
     postalcode = PostalCode; 
     balance = Balance; 
     min = Min; 

     return openaccount; 
    } 
} 
+6

Lesen Sie über [Konstruktoren] (https://msdn.microsoft.com/en-us/library/ace5hbzh.aspx), was Sie derzeit haben, ist eine Methode. – Habib

+0

Was ist deine Frage? Außerdem ist OpenAccount eine Methode, kein Konstruktor – Magnetron

+0

Das sind keine Konstruktoren, sie sind Funktionen - wollen Sie Funktionen oder Konstruktoren? – Rick

Antwort

0

Methoden können optionale Parameter haben, aber können Sie auch überlasten - so, während Sie einen Konstruktor scheinen zu wollen (weil Sie Objekte erstellen, aber könnten Sie machen es Methoden .. aber Sie müssen zuerst, dann das Objekt machen):

potenziell Sie 2 Konstrukteure für diese Bedingungen zu ermöglichen, haben könnte:

public OpenAccount (String name, String LastName, String Housenumber, String Postcode) 
{ do stuff } 
public OpenAccount (String name, String LastName, String Housenumber, String Postcode, int balance, int min) 
{ do stuff } 

Oder könnten Sie tun

public OpenAccount (String name, String LastName, String Housenumber, String Postcode, int balance=0, int min=0) 
{do stuff} 

, mit dem Sie diese Werte automatisch festlegen können, wenn keine angegeben sind. Ich habe nicht überprüft, ob es für Konstruktoren funktioniert, aber es sollte.

+0

Das Hinzufügen eines Konstruktors gibt 'AccountNrName1' und' AccountNrName2' nicht zurück ... – Sayse

+0

Nein, es würde das ganze Objekt mit Namen usw. zurückgeben. – BugFinder

+0

ah, das ist was ich brauchte. Danke für die Hilfe – gowiththestackflow

0

Sie benötigen eine Klasse, um an den Kontoinformationen festzuhalten.

public class Account { 

    public Account(int accountNumber) { AccountNumber = accountNumber; } 

    public int AccountNumber { get; private set; } 
    public string Name { get;set; } 
    public string LastName { get;set; } 
    public string HouseNumber { get;set; } 
    public string PostalCode { get;set; } 
    public int Balance { get;set; } 
    public int Min { get;set; } 
} 

Die Bank wird eine Sammlung von Konten halten und ermöglicht es Ihnen, Konten So, jetzt

public class Bank { 

    string name; 
    int accountIds = 0; 
    List<Account> accounts = new List<Account>(); 

    public Bank(string bankName) { 
     name = bankName; 
    } 

    //Open an account and return the account number 
    //Using optional parameters to allow 
    //OpenAccount("Name", "LastName", "HouseNumber", "PostalCode"); 
    //OpenAccount("Name", "LastName", "HouseNumber", "PostalCode", Balance, Minimum); 
    public Account OpenAccount(string Name, string LastName, string HouseNumber, string PostalCode, int Balance = 0, int Min = 0) { 
     var newAccount = new Account(++accountIds) { 
      Name = Name; 
      LastName = LastName; 
      HouseNumber = HouseNumber; 
      PostalCode = PostalCode; 
      Balance = Balance; 
      Min = Min; 
     }; 
     accounts.Add(newAccount); 
     return newAccount;  
    } 
} 

zu öffnen, wenn Sie rufen Sie die Bank ein Konto zu eröffnen

class Program { 
    static void Main(string[] args) { 
     Bank ing = new Bank("ing"); 
     Account AccountNrName1 = ing.OpenAccount("Name", "LastName", "HouseNumber", "PostalCode"); 
     Account AccountNrName2 = ing.OpenAccount("Name", "LastName", "HouseNumber", "PostalCode", Balance, Minimum); 
    } 
} 

sollten Sie zurück das geöffnete Konto mit allen bevölkerten Eigenschaften.

Verwandte Themen