Eigene Klasse und Liste

  • VB.NET

Es gibt 5 Antworten in diesem Thema. Der letzte Beitrag () ist von Parmaster.

    Eigene Klasse und Liste

    Hallo!

    Ich hab ein Problem, wo ich von selbst nicht auf die Lösung komme, zumal mir die Fehlermeldung von VS auch nicht wirklich weiter hilft.

    Also folgendes:

    ich habe eine Klasse, und beim instanziieren übergebe ich gleich zwei Parameter. Die Klasse an sich macht nichts großartiges außer etwas berechnen und einen String zurück geben.

    Jetzt leg ich mir eine neue Liste an, und als Typ gebe ich meine Klasse an(Dim Liste As New List(Of MeineKlasse)).

    Wenn ich nun der Liste mit .Add etwas hinzufügen will, der Wert ist einfach nur eine Zufallszahl,und halt noch der zweite Parameter dazu, kommt immer die Meldung Der Wert vom Typ "Integer" kann nicht in "Projekt.Module1.MeineKlasse" konvertiert werden.
    Fehlt da irgendwas beim Aufruf oder beim erstellen der Liste?

    Was bedeutet diese Fehlermeldung genau, und wie kann ich das Problem lösen?
    Naja, die Fehlermeldunge besagt das du versuchst einen Wert zu übergeben der nicht konvertiert werden kann.
    In diesem Fall übergibst du einen Integer und erwartet wir sein Typ deiner Klasse "Projekt.Module1.MeineKlasse".

    Für Mehr Hilfe benötige ich mehr Info, meine Glaskugel ist nämlich in der Reparatur.
    There is no CLOUD - just other people's computers

    Q: Why do JAVA developers wear glasses?
    A: Because they can't C#

    Daily prayer:
    "Dear Lord, grand me the strength not to kill any stupid people today and please grant me the ability to punch them in the face over standard TCP/IP."
    In einer List(of MeineKlasse) können nur Objekte vom Typ MeineKlasse rein und keine Integer.

    Wenn du das trotzdem so machen willst musst du den implicit operator (der implizit konvertiert) überschreiben und einen parameter vom typ int angeben:

    C#-Quellcode

    1. class Program
    2. {
    3. private static List<MeineKlasse> _listKlasse;
    4. static void Main(string[] args)
    5. {
    6. _listKlasse = new List<MeineKlasse>();
    7. _listKlasse.Add(5);
    8. Console.WriteLine(_listKlasse[0].Value);
    9. Console.ReadLine();
    10. }
    11. }
    12. public class MeineKlasse
    13. {
    14. public int Value { get; set; }
    15. public static implicit operator MeineKlasse(int pValue)
    16. {
    17. return new MeineKlasse() { Value = pValue };
    18. }
    19. }
    Also muss ich vorher noch eine Variable von meinem Datentyp anlegen?

    Um Code zu zeigen muss ich erst alles raus machen was nicht relevant ist, auch um mich nicht lächerlich zu machen. ^^


    EDIT:

    hat sich im Prinzip erledigt, hab es hinbekommen.

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „Parmaster“ ()