2016-04-07 4 views
0

異なるパラメータパターンを作成する必要があります。パラメータ:{string email、string phonenumber、string password}を持つStudent()構造体のインスタンスが必要な場合は、 を入力してください。インテリセンスのすべてのコンストラクタが表示されない

私は同じクラスの生徒用に2つのコンストラクタを作成して実装しようとしましたが、動作しません。最初のコンストラクタのパラメータ規定のみを提供します。

public struct student 
{ 
    private string username; 
    private string password; 

    public string Username 
    { 
     get { return username; } 
     set { username = value; } 
    } 

    public string Password 
    { 
     get { return password; } 
     set { password = value; } 
    } 

    public student(string username, string password) 
    { 
     this.username = username; 
     this.password = password; 

    } 

    public student(string username,string email,string phonenumber,string password) 
    { 
     this.password = password; 
     this.username = email; 
    } 
} 

これはこれが提供するものです。

1 of 2 options for the parameters

2 of 2 options for the parameters

+0

"それは"それは "それは何"ですか? 「パラメータ規定」とは何ですか?あなたが電話番号と電子メールのプロパティを持っていないという事実以外に、あなたがやったことがうまくいくので、問題が何であるかを説明してください。 –

+3

これに構造体の代わりにクラスを使用し、.NETの大文字と小文字の規則に従います。それを除けば、私はあなたのコードを試して、私はintellisenseですべてのコンストラクタを取得します。 –

+0

画像が表示されたコードと一致しません。更新してください。 –

答えて

1

あなたはここで、人々は左のコメントに何を意味するかを考えて、あなたの頭を悩まている場合は、それがどのように見えるか(与えるか、または取る)である:

public class Student 
{ 
    public string Username { get; set; } 
    public string PhoneNumber { get; set; } 
    public string Password { get; set; } 
    public string Email { get; set; } 

    public Student(string username, string password) 
    { 
     Username = username; 
     Password = password; 
    } 

    public Student(string username, string email, string phoneNumber, string password) 
    { 
     Username = username; 
     Password = password; 
     Email = email; 
     PhoneNumber = phoneNumber; 
    } 
} 

かオーバーロードされたコンストラクタは次のようになります。

public Student(string username, string email, string phoneNumber, string password) : this (username, password) 
{ 
    Email = email; 
    PhoneNumber = phoneNumber; 
} 
0

これが答えですが、私は二つのクラスに作業コードを分割したいともauto-implemented properties使用するかどうかわからない:私たちは私たちのプロパティは、クラスの外から到達不能セッター作るためにprivate setを使用する方法

public class LoginInfo 
{ 
    public string Username { get; private set; } 
    public string Password { get; private set; } 

    private LoginInfo() {} 

    public LoginInfo(string login, string password) 
    { 
     this.Login = login; 
     this.Password = password; 
    } 
} 

public class Student 
{ 
    public LoginInfo Logindata { get; private set; } 
    public string PhoneNumber { get; private set; } 

    public student(string username, string password) 
    { 
     logindata = new LoginInfo(username, password); 
    } 

    public student(string email, string password, string phonenumber) 
    { 
     logindata = new LoginInfo(email, password); 
     PhoneNumber = phonenumber; 
    } 
} 

注意を。また、正しい命名も重要であることに気をつけてください。プロパティやクラスに名前をつけると大文字で始まり、フィールドであれば小文字かアンダースコアで始まる_

関連する問題