Abrar Kazi Ответов: 3

Как использовать концепцию интерфейса в программе и удовлетворить ее концепцию?


Интерфейс :

public interface Interface2
   {
       void get2();
       bool insert2(User U);
   }




Реализация:

public class HomeController : Controller
   {
       Interfaces _iInterfaces;
       Interface2 _iInterface2;

       public HomeController(Interfaces iInterface,Interface2 iInterface2)
       {
           _iInterfaces = iInterface;
           _iInterface2 = iInterface2;
       }



       [HttpPost]
       public ActionResult Index(User objUser)
       {

           _iInterfaces.insert(objUser);
           _iInterface2.insert2(objUser);

           return View();
       }



Что я хочу знать, так это то, что мой Interface2 имеет 2 объявленных метода. Я реализую интерфейс в классе, но вызываю только 1 метод(insert2) из 2 методов, объявленных в интерфейсе.

Удовлетворяет ли это использованию интерфейса или я должен обязательно дать определение всем методам внутри интерфейса, когда этот интерфейс будет реализован.

Что я уже пробовал:

открытый интерфейс Interface2
{
void get2();
bool insert2(пользователь U);
}


Я реализовал этот интерфейс и использовал только один из методов. Достаточно ли этого ?

3 Ответов

Рейтинг:
1

Vincent Maverick Durano

До тех пор, пока вы реализуете эти методы в конкретном классе, вы должны быть в порядке. Однако если вы не используете другой метод, определенный в вашем интерфейсе где-то в вашем приложении, то вы можете просто удалить его.


Рейтинг:
0

F-ES Sitecore

Вам не нужно вызывать все элементы интерфейса, просто вызовите те, которые вам нужны. Однако чтение между строк, Если ваши интерфейсы фактически одинаковы;

public interface Interfaces
   {
       void get();
       bool insert(User U);
   }

   public interface Interface2
   {
       void get2();
       bool insert2(User U);
   }


тогда вам вообще не нужен Interface2, просто есть класс, который реализует Interface2, реализующий интерфейсы.


Рейтинг:
0

BillWoodruff

Любой класс (или, в C#, структура), который инвентарь интерфейс должен реализовывать все свойства и методы (и индексаторы, и события), указанные в интерфейсе (интерфейсы C# не допускают полей).

Имейте в виду, что интерфейс C# не является классом, значением или ссылочным типом. Хотя вы можете вызывать некоторые методы 'Object on an Interface, например' ToString (), "природа" интерфейса довольно уникальна в .NET: см. Эти комментарии Джона Скита: [^].

Интерфейс может наследоваться от другого интерфейса, и я предлагаю вам посмотреть на это как на пример "расширения"; и вы можете использовать общие объявления типов с интерфейсом:

public interface IController
{
    // property
    string Name { set; get; }
}

public interface IControllerItems<T> : IController
{
    // property
    List<T> Items { set; get; }
    
    // method
    int ModelNumber { set; get; }
    
    // method
    void AddItem(T item);
}
Итак, интерфейс-это контракт, обещание, которое вы реализуете, требование, которое вы должны реализовать; я предлагаю вам думать об этом как о чем-то отличном от "наследования" классов.

После того, как вы реализовали интерфейс в классе, в какой степени вы используете каждое реализованное свойство и метод ... вам решать.

Проблема вот в чем. Продолжение следует...