none
Implementierung von Enum durch Interface erzwingen RRS feed

  • Frage

  • Hallo Leute,

    ich möchte gerne, dass eine Klasse zwei Enumerationen umsetzt. Folgender Code haut jedenfalls nicht hin. Ist es überhaupt möglich, dies in einem Interface zu bewerkstelligen? 

    Interface:

        interface IPiece {
            void PieceType(Enum @PieceType);
      .
      .
        }

    Folgende Klasse

        public class Piece:IPiece 

    liefert den Fehler: "Piece implementiert den Schnittstellenmember IPiece.PieceType(Enum) nicht"

        #region Enumeration - Farbe
    
        public enum PieceColor {
            Black,
            White,
            Dummy
        }
        #endregion
    
        #region Enumeration - Figur
        public enum PieceType {
            Bauer,
            Springer,
            Laeufer,
            Turm,
            Dame,
            Koenig
        }
        #endregion




    • Bearbeitet tklustig Sonntag, 7. Juli 2019 14:49
    Sonntag, 7. Juli 2019 14:32

Antworten

  • Hallo

    Die Fehlermeldung gibt den Hinweis:

    "Piece implementiert den Schnittstellenmember IPiece.PieceType(Enum) nicht"

      interface IPiece {
        void PieceType(Enum @PieceType);
      }
      public class Piece : IPiece {
        public void PieceType(Enum PieceType) {
          throw new NotImplementedException();
        }
      }

    Wenn du bei "public class Piece : IPiece" über "IPiece"  hooverst, bekommst du doch auch ein Kontextmenü angezeigt?

    Das "Interface" ist eine Art Vertrag, den deine Klasse erfüllen muss. Also die geforderten Signaturen des Interfaces müssen auch in der Klasse umgesetzt werden.

    Gruß


    Sonntag, 7. Juli 2019 17:59