Interface Property MaxLength

  • C#
  • .NET (FX) 4.5–4.8

Es gibt 3 Antworten in diesem Thema. Der letzte Beitrag () ist von RodFromGermany.

    Interface Property MaxLength

    Hallo zusammen,

    ich habe mal eine Frage bezüglich interfaces in .NET.

    Ich habe folgendes Interface:

    C#-Quellcode

    1. public interface IKunde
    2. {
    3. string Kundennummer { get; set; }
    4. string Kundenname { get; set; }
    5. string Ansprechpartner { get; set; }
    6. string Strasse { get; set; }
    7. string Postleitzahl { get; set; }
    8. string Land { get; set; }
    9. string Telefonnummer { get; set; }
    10. }


    Nun möchte ich den Properties mitteilen, dass diese nur eine begrenzte Länge haben sollen, da diese durch die Datenbank beschränkt sind. Gibt es hier eine leichte Möglichkeit das direkt im Interface zu regeln, oder muss ich mir zwangsweise eine Klasse erstellen und die Properties dann manuell prüfen?

    Viele Grüße,
    Marvin
    Wäre mir neu und sehe das ähnlich wie @EaranMaleasi, falls du es dennoch in den Daten erzwingen willst, könntest du dir eigene Datentypen erstellen.

    C#-Quellcode

    1. public class TinyInt
    2. {
    3. private const int minimalValue = 1;
    4. private const int maximalValue = 10;
    5. private readonly int value;
    6. public TinyInt() { }
    7. private TinyInt(int i)
    8. {
    9. if (minimalValue > i || i > maximalValue)
    10. {
    11. throw new System.ArgumentOutOfRangeException();
    12. }
    13. value = i;
    14. }
    15. public static implicit operator int(TinyInt i)
    16. {
    17. return i.value;
    18. }
    19. public static implicit operator TinyInt(int i)
    20. {
    21. return new TinyInt(i);
    22. }
    23. }

    @MarvinKleinMusic Wer implementiert denn das Interface?
    Wenn Du die Implementierung schreibst, kannst Du so was machen:

    C#-Quellcode

    1. private string _Kundennummer;
    2. public string Kundennummer
    3. {
    4. get { return _Kundennummer; }
    5. set
    6. {
    7. if (value.Length > MAX_PATH) throw new System.ArgumentOutOfRangeException();
    8. _Kundennummer = value;
    9. }
    10. }
    Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
    Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
    Ein guter .NET-Snippetkonverter (der ist verfügbar).
    Programmierfragen über PN / Konversation werden ignoriert!