2017-02-13 2 views
-6

간단한 질문이 있습니다. 클래스 Bank에는 생성자의 양이 다른 속성이 있어야합니다.다른 양의 생성자에게 묻는 속성

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

"OpenAccount"생성자는 두 경우 (AccountNrName1, AccountNrName2)를 모두 반환해야합니다. 여기에 지금까지 무엇을 가지고 :

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

현재 [생성자] (https://msdn.microsoft.com/en-us/library/ace5hbzh.aspx)에 대한 정보는 방법을 참조하십시오. – Habib

+0

무엇이 당신의 질문입니까? 또한 OpenAccount는 생성자가 아닌 메서드 인 – Magnetron

+0

입니다. 생성자가 아니라 함수입니다. 함수 나 생성자를 원하십니까? – Rick

답변

0

방법 당신은 또한 오버로드 할 수있는 선택적 매개 변수를 가질 수 있지만 - 당신은하지만, 객체를 생성하고 있기 때문에 당신이 생성자를 (원하는 것 같다 동안 그래서, 당신이 만들 수 그 방법은 ...하지만 당신은 먼저 객체를 만들 필요가 않습니다)! 당신이 그 조건을 허용하는 2 생성자 가질 수

잠재적

:

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 } 

을 또는 당신이 할 수

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

이 값이 없으면 자동으로 값을 설정할 수 있습니다. 내가 생성자를 위해 작동하는지 확인하지 못했지만 반드시해야한다.

+0

생성자를 추가해도'AccountNrName1'과'AccountNrName2'을 반환하지 않습니다 ... – Sayse

+0

아니요. 이름이 붙은 전체 개체를 반환 할 것입니다. – BugFinder

+0

아, 그게 내가 필요한 것입니다. 도와 주셔서 감사합니다 – gowiththestackflow

0

계정 정보를 유지하려면 수업이 필요합니다. 당신이 계정

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); 
    } 
} 
을 열려면 은행을 호출 할 때

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

Bank이 계정의 컬렉션을 보유하고 열 수는 이제

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

계정

당신은 돌아 가야한다 모든 속성이 채워진 열린 계정

관련 문제