Wraz z C# 8 pojawiły się zmiany w specyfikacji interfejsów. Artykuł nieaktualny - w trakcie aktualizacji.

Więcej informacji: https://docs.microsoft.com/pl-pl/dotnet/csharp/whats-new/csharp-8#default-interface-methods


Interfejs

określa zbiór zasad według których mamy budować klasy bądź struktury implementujące dany interfejs. Owy zbiór zasad to po prostu deklaracje metod, właściwości oraz zdarzeń. Wszystkie te składowe powinny być zaimplementowane w klasie implementującej interfejs.

Mówiąc prościej interfejs określa co należy zrobić a klasa implementująca określa w jaki sposób należy to zrobić.


  • klasa implementująca interfejs musi zawierać implementację wszystkich składowych interfejsu
  • interfejs zawiera jedynie deklaracje, nie dostarcza implementacji
  • klasa może implementować wiele interfejsów
  • interfejs nie może zawierać deklaracji pól (jedynie właściwości)
  • nie można stworzyć instancji interfejsu
  • nazwy interfejsów poprzedzane są zwykle literą 'I', np ICalculator (to jedynie konwencja a nie wymóg języka C#)
  • składowe interfejsu nie mogą być oznaczane modyfikatorem dostępu (wszystkie składowe interfejsu oznaczane są domyślnie jako public)


public interface ICalculator //deklaracja interfejsu
{
    // deklaracja składowych interfejsu
    int Sum(int a, int b); 
    double Divide (int a, int b)
}

public class Calculator : ICalculator // klasa Calculator implementuje ICalculator
{
    int a;
    int b;

    // implementacja metody interfejsu
    int Sum(int a, int b) 
    {
        return a+ b;
    }
    // implementacja metody interfejsu
    double Divde (int a, int b)
    {
        return a  / b;
    }
}

© 2024 - SkillsTest.pl | | Regulamin | Polityka Prywatnosci