2015-07-01 2 views
1

Я пишу lib для synapse API в C#, а для разработчика интерфейса я должен писать классы-оболочки. Я хочу, чтобы это было как можно проще, чтобы вызвать метод. Это мой первый проект, и я не уверен, что я пишу или нет.Это правильный способ написать класс оболочки?

примера кода

public string CreateEmployee (Employee lacc) 
     { 
      RestHelper lhelp = new RestHelper(); 
      string ljson = CreateEmployee(lacc);//will create JSON 
      string results = lhelp.APICalls(ljson, lhelp.EndPointUrl(Settings.Employee_CREATE_ENDPOINT), Settings.POST_METHOD); 
      return results; 
     } 

Так передний конец разработчик должен вызвать метод CreateEmployee() и передать объект Employee и передавать значение.

Пример кода

 Employee lemp = new Employee(); 
     EmployeeEndPoint lend = new EmployeeEndPoint(); 

     //lend.GetEmployeeInfo(); 

     lemp.SSN = "222-33-5551"; 
     lemp.Id = "1"; 
     lemp.Line1 = "904,greek row dr"; 
     lemp.City = "arlington"; 
     lemp.CountrySubDivisionCode = "TX"; 
     lemp.PostalCode = "76013"; 
     lemp.BillableTime = false; 
     lemp.HiredDate = "2014-11-01"; 
     lemp.GivenName = "new"; 
     lemp.FamilyName = "employee"; 
     lemp.DisplayName = "new employee display"; 
     lemp.PrintOnCheckName = "oncheck name nikunj1"; 
     lemp.Active = true; 
     lemp.FreeFormNumber = "4089170880"; 

     lend.CreateEmployee(lemp); 

Так это хороший способ, или я должен создать N возможный конструктор ?? так что он может непосредственно вызывать этот метод .. Я смущен, может кто-нибудь мне помочь ..

Например

public createEmployee(string first name, string last name, string address, string status, ....) 
{ 
//create instnace pass value 
} 

public createEmployee(string first name, string last name, string address, string) 
{ 
//create instnace pass value 
} 

Есть определенные поля, которые не являются обязательными и в других некоторых из них итерации так нет фиксированный размер ввода.

Я пишу правильный путь?

+1

Любых «необходимых» свойства должен быть установлен в конструкторе - все остальные «необязательные» свойства должны быть установлены с использованием синтаксиса инициализатора или набора свойств. –

+0

@DStanley Можете ли вы привести мне какой-то пример или какую-то ссылку .. Спасибо – nikunjM

+0

[MSDN] (https://msdn.microsoft.com/en-us/library/ace5hbzh.aspx) - не уверен, какая часть вы застрял на. –

ответ

-1

Почему вы не используете Optional and Named parameters

Например, в вашем примере мы можем объявить конструктор такие (необязательные параметры):

public Employee(string firstname="", string lastname="", string address="", string status="", ....) 

и использования (Именованные параметры):

var emp=new Employee(lastname:"Adl"); 
+0

, но для этого мне нужно написать конструкторы, не так ли? – nikunjM

+0

Nope. Методы могут иметь необязательные и именованные параметры. –

+0

Его просто так, как вместо того, чтобы писать в последовательности, он может писать в любом формате .. Но в конце концов он должен определить имена полей .. Можете ли вы рассказать мне о разработчике переднего плана, что намного проще ..? @DarkBobG – nikunjM

1

Я бы сказал, что подход с наличием объекта как параметра лучше, он более читабельен, учитывая объем необходимой информации.

Однако есть более читаемые способы instanting объекта, например:

EmployeeEndPoint lend = new EmployeeEndPoint(); 

      Employee lemp = new Employee { 
       SSN = "222-33-5551", 
       Id = "1", 
       Line1 = "904,greek row dr", 
       City = "arlington", 
       ... 
       FreeFormNumber = "4089170880" 
      }; 

lend.CreateEmployee(lemp); 

Вы также можете сделать это в одной строке, но это определенно не так читает:

EmployeeEndPoint lend = new EmployeeEndPoint(); 

lend.CreateEmployee(new Employee { 
        SSN = "222-33-5551", 
        Id = "1", 
        Line1 = "904,greek row dr", 
        City = "arlington", 
        ... 
        FreeFormNumber = "4089170880"}); 
+0

Так что мой способ письма правильный, он такой же, как ваш .. но урс более читабельна .. – nikunjM

+1

Точно. Я бы подумал о том, чтобы делать с параметрами, когда я знаю, что это ограниченное число параметров, допустим максимум 3. Это также более важно, поскольку вы можете добавлять новые свойства в класс «Employee» и не нужно беспокоиться об изменении метода подпись. – jjczopek

Смежные вопросы