2016-03-22 4 views
0

Parametrelerle var olan bir yöntemden poco sınıfını otomatik oluşturmanın herhangi bir kısa yolu var mı? Bu yöntemdenPoco sınıfı (nesne) bir yöntem parametresinden otomatik olarak nasıl oluşturulur?

public void RegisterUser(string userName, string fullName, 
string tel, string mobile, string website, string address, string blah){ 
    //-- 
    } 

Ben aşağıda benim sınıf oluşturmak oto gerekir:

class UserRegisterDetail{ 

public string UserName {get;set;} 
public string FullName {get;set;} 
public string Tel {get;set;} 
public string Mobile {get;set;} 
public string Website {get;set;} 
public string Address {get;set;} 
public string Blah {get;set;} 
} 

Resharper kullanmak ve yeniden faktoring ama basit poco sınıfı oluşturamaz.

Güncelleme: "parametrelerinden Özü sınıfını" kullanma

seçenek oluşturur aşağıdadır:

public class RegisterUserParams 
     { 
      private string userName; 
      private string email; 
      private string fullName; 
      private string jobTitle; 
      private string department; 
      private string tel; 
      private string mobile; 
      private string switchboard; 
      private string fax; 
      private string address1; 
      private string address2; 
      private string address3; 

      public RegisterUserParams(string userName, string email, string fullName, string jobTitle, string department, string tel, string mobile, string switchboard, string fax, string address1, string address2, string address3) 
      { 
       this.userName = userName; 
       this.email = email; 
       this.fullName = fullName; 
       this.jobTitle = jobTitle; 
       this.department = department; 
       this.tel = tel; 
       this.mobile = mobile; 
       this.switchboard = switchboard; 
       this.fax = fax; 
       this.address1 = address1; 
       this.address2 = address2; 
       this.address3 = address3; 

      } 
public string UserName 
      { 
       get { return userName; } 
      } 

      public string Email 
      { 
       get { return email; } 
      } 

      public string FullName 
      { 
       get { return fullName; } 
      } 

      public string JobTitle 
      { 
       get { return jobTitle; } 
      } 

      public string Department 
      { 
       get { return department; } 
      } 

      public string Tel 
      { 
       get { return tel; } 
      } 

      public string Mobile 
      { 
       get { return mobile; } 
      } 

      public string Switchboard 
      { 
       get { return switchboard; } 
      } 

      public string Fax 
      { 
       get { return fax; } 
      } 

      public string Address1 
      { 
       get { return address1; } 
      } 

      public string Address2 
      { 
       get { return address2; } 
      } 

      public string Address3 
      { 
       get { return address3; } 
      }   
     } 
+1

Refactoring'i "Parametrelerden ayıkla" denediniz mi? C# BTW, _POCO_, pojo değil. –

+0

Bir yöntem için 3'den fazla argüman istemezsiniz. Bu kötü bir tasarım olarak kabul edilir - Oku Robert C. Martin Temiz Kodu Sayfa 40. – Win

+0

Bu yüzden ben çok fazla parametre – akd

cevap

0

sadece parametreleri ve pas olarak istediğiniz özelliklere sahip sınıf oluşturmak gerektiğini bana görünüyor parametrenin bir örneği. Yöntem için çok fazla parametreye sahip olmaktan iyidir.

örn: UserRegisterDetail geçmek isteyen özelliklere sahip size class olan

public void RegisterUser(UserRegisterDetail pInstanceOfMyClass) 
{ ... } 

.