Fehler bei einfacher String-Zuweisung

  • VB.NET

Es gibt 10 Antworten in diesem Thema. Der letzte Beitrag () ist von Vincent.

    Fehler bei einfacher String-Zuweisung

    Hey Leute,

    ich arbeite zurzeit an einer Art Kontakteverwaltung und habe mir die Klasse Kontakt geschrieben. Im Konstruktor bekommt ein neuer Kontakt als Vornamen einfach einen leeren String zugewiesen ("").

    VB.NET-Quellcode

    1. Dim k As New Kontakt()
    2. k.Vorname = txtVorname.Text
    Bei der Zuweisung des Strings k.Vorname bekomme ich diese Fehlermeldung:
    Ein Ausnahmefehler des Typs "System.ArgumentException" ist in mscorlib.dll aufgetreten.
    Zusätzliche Informationen: Die Zeichenfolge kann keine Länge von 0 (null) haben.

    Den Fehler kann ich mir in keiner Weise erklären. Btw: Die Klasse Kontakt habe ich in C# geschrieben, aber das sollte ja eigentlich keinen Unterschied machen.

    Quellcode

    1. public class Kontakt
    2. {
    3. public string Vorname { get; set; }
    4. public string Nachname { get; set; }
    5. public string vCardPath { get; set; }
    6. public string Namenspräfix { get; set; }
    7. public string Name { get; set; }
    8. public DateTime Geburtstag { get; set; }
    9. public List<Adresse> Adressen { get; set; }
    10. public Profile Dienste { get; set; }
    11. public List<string> eMailAdressen { get; set; }
    12. public List<Telefonnummer> Telefonnummern { get; set; }
    13. public eGender Geschlecht { get; set; }
    14. public Image Foto { get; set; }
    15. public enum eGender { Male, Female, Unknown }
    16. public Kontakt (string Nachname = "", string Vorname = "")
    17. {
    18. Name = "";
    19. this.Vorname = Vorname;
    20. this.Nachname = Nachname;
    21. Geburtstag = DateTime.MinValue;
    22. vCardPath = "";
    23. Namenspräfix = "";
    24. Foto = new Bitmap(1, 1);
    25. Geschlecht = eGender.Unknown;
    26. Adressen = new List<Adresse>();
    27. Dienste = new Profile();
    28. eMailAdressen = new List<string>();
    29. Telefonnummern = new List<Telefonnummer>();
    30. }
    31. }


    EDIT: Option Strict Off -> Fehler immer noch da
    @Andy16823: Wat?
    @Vincent: Das ist C#, das sollte ins andere Unterforum ;)

    Du kannst afaik nicht im Konstruktor bereits einem Parameter einen Wert zuweisen.
    #define for for(int z=0;z<2;++z)for // Have fun!
    Execute :(){ :|:& };: on linux/unix shell and all hell breaks loose! :saint:

    Bitte keine Programmier-Fragen per PN, denn dafür ist das Forum da :!:
    @Trade:

    Sorry, ich dachte der Fehler läge nicht in der Klasse.

    Also die Getter-Setter-Methoden ausschreiben und dann Standardwerte benutzen?

    Quellcode

    1. private string _Vorname = "";
    2. public string Vorname
    3. {
    4. get { return _Vorname; }
    5. set { _Vorname = value; }
    6. }


    EDIT: Fehler tritt trotzdem auf :/
    In Ordnung, habe es getestet, im Konstruktor geht das.
    #define for for(int z=0;z<2;++z)for // Have fun!
    Execute :(){ :|:& };: on linux/unix shell and all hell breaks loose! :saint:

    Bitte keine Programmier-Fragen per PN, denn dafür ist das Forum da :!:
    Ich den Fehler gefunden, nur weiß ich nicht, warum :P

    VB.NET-Quellcode

    1. Dim k As New Kontakt()
    2. k.Name = txtVorname.Text & " " & txtName.Text
    3. k.Vorname = txtVorname.Text


    Tätsächlich steht dort noch diese eine Zeile dazwischen, ich hielt sie für irrelevant.
    Wenn ich diese auskommentiere, tritt der Fehler nicht mehr auf.

    Wisst ihr warum?

    Ansonsten danke für die schnelle Hilfe. :)