2016-04-07 22 views
0

Farklı parametre modelleri oluşturmam gerekiyor: örneğin; {String kullanıcı adı, dize şifresi} parametrelerine sahip Student() nesnesinin bir örneğine veya {string email, string phonenumber, string password} parametreleriyle aynı struct Student() öğesine bir örneğe ihtiyacım olması durumunda ;intellisense'deki tüm kurucuları göremiyor

Aynı sınıf için İki kurucu oluşturarak bunu uygulamaya çalıştım ancak Çalışmıyor. Sadece ilk kurucu için Parametre hükümleri sağlar.

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

Bu, Sağladığı;

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

Veya:

1 of 2 options for the parameters

2 of 2 options for the parameters

+0

"sadece parametre hükümleri sağlar" <- ne "o" nedir? "parametre hükümleri" nedir? Lütfen sorunun ne olduğunu daha fazla açıklayın çünkü yaptığınız şey telefon numarası ve e-posta için mülkünüz olmadığı gerçeğinden başka bir şey değil. –

+3

Bunun için bir yapının yerine bir sınıf kullanın, ayrıca .NET büyük harf kullanımı kurallarına da uyun. Bunun dışında, kodunuzu denedim ve tüm kurucuları intellisense aldım. –

+0

Görüntüler, gösterilen kodla eşleşmiyor. Lütfen güncelle. –

cevap

1

insanların sol yorumlara göre ne anlama geldiğini düşünerek kafasını kaşıyor ediyorsanız, işte gibi görünmelidir (vermek veya almak) nedir Aşırı yüklenici bu gibi görünebilir:

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

Bu cevap ama iki sınıfa çalışma kodunu bölmek istiyorum ve ayrıca auto-implemented properties kullanmak istiyorsunuz emin değilim:

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

Not bizim özellikler sınıfın dışından ulaşılamaz ayarlayıcı yapmak private set nasıl kullandıklarını. Ayrıca doğru adlandırma da önemlidir. Eğer normalde bir özellik veya bir sınıf adı verirseniz, Büyük harf ile başlar ve eğer alan küçük harf veya alt çizgi ise

İlgili konular