C# Tutorial Deutsch / German [16/20] - Get und Set

Поділитися
Вставка
  • Опубліковано 6 січ 2025

КОМЕНТАРІ • 96

  • @ProgrammierenStarten
    @ProgrammierenStarten  4 роки тому +4

    ✘ Zum C# Masterkurs: programmieren-starten.de/csharp-lp1/?

  • @Linkario86
    @Linkario86 6 років тому +119

    Da bezahlt man jedes halbe Jahr 3000.- für Teilzeitunterricht und lernt absolut nichts, geht auf UA-cam, zieht sich gratis so ein Video rein und versteht die ganze Sosse in etwas unter 13 Minuten.
    Danke für das Video! Hat mir ne Menge Zeit erspart. Sehr gut erklärt.

    • @blizzardfan7946
      @blizzardfan7946 6 років тому +1

      privat uni oder weiterbildung ? und warum so teuer :0

    • @Linkario86
      @Linkario86 6 років тому

      @@blizzardfan7946 Höhere Fachschule.

    • @GrowsDrummer
      @GrowsDrummer 5 років тому +2

      Dann hast dus noch günstig. Ich zahl 9k/ Semester...

    • @linshu6141
      @linshu6141 4 роки тому +4

      Das Problem ist bei privaten aber auch staatlichen Schulen wird meistens alles theroetisch gelernt. Hier hat man direkt ein Beispiel zum selbst austesten. Dazu gibt es auch einige schwarze Schafe im privaten Bereich.
      Viele große Entwickler und aber auch Privatpersonen wie du und ich mussten das schmerzhaft lernen.
      Ich persönlich kenne keinen erfahrenen Programmierer der je empfohlen hat auf eine Schule oder sogar ein Studium zu gehen. Programmieren ist learning by doing. Nur du selbst kannst wirklich das lernen was du am Ende brauchst. Es ist wie im Mathe Unterricht du lernst über 100 Themen, aber im Endeffekt brauchst du dann für das was DU machen willst nur 10-20. Ist traurig das unser Lernsystem in Deutschland in den 60/70er hängen geblieben ist...

    • @frodion
      @frodion 4 роки тому +2

      @Dreaming Away Das selber lernen bringt einem nur leider keinen Abschluss, was alle Firmen hier in Deutschland so toll finden. Wobei die Leute mit Abschluss oft von der Praxis null Ahnung haben.

  • @Слушающийчеловек-р3я

    Meine Bewertung ist 10 von 10! Ich bin in der Ausbildung zum Programmierer und mir haben diese Lerntutorials viel gebracht, also wirklich super erklärt!

  • @tutorial4779
    @tutorial4779 3 роки тому +2

    Ich habe in diesen ersten 15 Videos dieser Reihe mehr gelernt wie in 1 Jahr Informatik Modul Unterricht.

  • @DANBOOO
    @DANBOOO 6 років тому +12

    Super Danke! ich hab das nie richtig verstanden gehabt, aber dadurch jetzt schon :) hab mir eben euer E-Book geholt :)

  • @tonycaterev4100
    @tonycaterev4100 6 років тому +8

    Fantastisches Tutorial Janek! Definitiv die einfachste Lernmethode.

  • @uwebebendorf6113
    @uwebebendorf6113 4 роки тому

    Jetzt, nach etwas längerer Beschäftigung mit C#, hab ich dieses Thema verstanden. Gut gemacht!!!

  • @ArnavBoom
    @ArnavBoom 3 роки тому +1

    Danke für die super tutorials, ich weiß ja schon das meiste c#, aber ich gucke die tutorialsvong die die ich, nicht weiß. Muss sagen echt super erklärt

  • @DarkD33p
    @DarkD33p 2 роки тому

    Sehr gut erklärt. Es musste erst "Klick" machen, um überhaupt zu verstehen, wozu das ganze gut ist.

  • @therapy64
    @therapy64 5 років тому +4

    Prima Tutorial! Vielen Dank!

  • @redbaron6228
    @redbaron6228 3 роки тому +2

    Bei mir wird in der Konsole einfach nur unendlich lang "Alter wurde überschrieben!" ausgegeben, weiß jemand woran das liegt?

  • @BlueTigerReal
    @BlueTigerReal 4 роки тому +1

    Gibt es irgendwo das selbe Video für Java?

  • @VieleDominoes
    @VieleDominoes 5 років тому +1

    Wow das ist richtig gut erklärt

  • @blizzardfan7946
    @blizzardfan7946 6 років тому +1

    Ein großartiges Video vielen Dank !

  • @namensklauer
    @namensklauer 4 роки тому +2

    Also ich kann bei mir keinen unterschied feststellen, ob ich
    public string Name;
    oder
    public string Name {get; set;}
    schreibe. ich kann bei beiden den wert ändern und auslesen. Und welchen Vorteil hat das private alter, wenn das public Alter effektiv das "privat" aufhebt? eine selbst geschriebene funktion GetAlter mit return(this.alter) erscheint mir da sinnvoller

  • @michaellindner8616
    @michaellindner8616 4 роки тому +1

    Hey habe das ganze mit einen namen probiert also nur des int mit string ausgetauscht hat aber nicht funktioniert. In der main methode stand dann der typ"..." kann nicht impliziert in string konvertiert werden. Kann mir da vielleicht irgendwer weiter helfen?

  • @forestcat512
    @forestcat512 2 роки тому +1

    Wäre das z.B. praktisch wenn man den Status von etwas ändern möchte z.B. ein Bot und von dem eine Eigenschaft aber man möchte sicher gehen das noch ein paar Dinge in der set Methode ausgeführt werden und das erst dann z.B. auf true oder false etc. geändert wird? So als Verständnisfrage ^^

  • @MrSchlechtes
    @MrSchlechtes 4 роки тому +1

    Ich finde,dass wenn in dem Set Beispiel z.B. eine "If Abfrage" wie (alter < 18) eingebaut wäre, würde der Sicherheitsaspekt etwas deutlicher zutage treten....

  • @laurenz8316
    @laurenz8316 3 роки тому +1

    Eine Frage:
    Könnte man es nicht auch wie in Java machen? Also zum Beispiel so:
    private string größe;
    public string getGröße() {
    return größe;
    }
    public void setGröße(string größe) {
    this.größe = größe;
    }

  • @fkkfdkfkjd7481
    @fkkfdkfkjd7481 2 роки тому +1

    in der Schule haben wirr etwas von instanzVariblen gelernt aber ich weiss nicht wass das ist. Sind instanz Variablen einfach die Privaten Variablen.

  • @leonbou3959
    @leonbou3959 4 роки тому

    Wie kann ich eine sache zwischenspeichern? wenn ich z.B mit einer consolen eingabe mehrer Personen erstellen möchte und dennen ein alter zuweise (per consolen eingabe) wie kann ich diese eingabe später dann noch mal aufrufen und ausgeben lassen?

  • @simongunka6118
    @simongunka6118 4 роки тому +2

    Ich habe das irgendwie nicht verstanden mit return alter, alter = value und für was man die private Variable braucht. Kann mir wer das vielleicht erklären?

    • @maksimbronsky7117
      @maksimbronsky7117 4 роки тому

      Japp, die Erklärung finde ich auch extrem verwirrend, hat evtl. was mit der Wahl der Variablennamen zu tun. Ich vesuch es mal.
      Die Eigenschaft Alter ist sowas wie ein Aufpasser zwischen der Außenwelt und dem privaten Klassenattribut alter. Das bedeutet, man kommt auf alter weder lesend oder schreibend an der Eigenschaft Alter vorbei, aber (Achtung!) Alter selber speichert selber keine Daten.
      Nehmen wir mal die Person peter aus dem Beispiel:
      Bei Console.WriteLine(peter.Alter) handelt es sich um einen lesenden Zugriff, also springen wir nach peter.Alter => get => return alter und bei peter.Alter = 88 das Gleiche nur diesmal geht es in den set-Block also peter.Alter => set => peter.alter = 88.

  • @EMAberlin
    @EMAberlin 5 років тому +1

    Beste!!!

  • @finanzsystemhandel
    @finanzsystemhandel 4 роки тому

    TOP.

  • @tobiaswolfgart1017
    @tobiaswolfgart1017 Рік тому

    Ich muss mal eine dumme Frage stellen. Ruft man mit "get" Datensätze ab, die schon vorhanden sind?

  • @HeinzUlrich65
    @HeinzUlrich65 3 роки тому

    Was ich noch nicht verstehe ist warum man nich direkt auf Variable zugreifen darf? Was heisst dieses von "Aussen zugreifen" und man kann es doch dann aufrufen und überschreiben mit den Methoden? Was ist da der Unterschied?

  • @Tk.0verflow-no
    @Tk.0verflow-no 3 роки тому +1

    warum funktioniert es bei mir nicht, peter.Alter es heisst CS0229 habe alles genau abgeschrieben aber es funktioniert einfach nicht ich glaube Visual Studio hasst mich
    {
    class Program
    {
    static void Main()
    {
    Person peter = new Person();
    peter.Alter = 10;
    Console.WriteLine(peter.Alter);
    Console.ReadKey();
    }
    }
    class Person
    {
    private int alter;
    public int Alter
    {
    get
    {
    Console.WriteLine("Alter gelesen");
    return alter;
    }
    set
    {
    Console.WriteLine("Alter überschriben");
    alter = value;
    }
    }
    }
    }

  • @mrmillennium6533
    @mrmillennium6533 4 роки тому +1

    Hi Programmieren Starten,
    bei mir wird die Zahl die zu peter.Alter angegeben wird rot unterkringelt.
    Es steht "der Typ int kann nicht implizit in string konvertiert werden"
    Auch alter und value in der class Person wird unterkringelt und es steht immer das gleiche
    class Program
    {
    static void Main(string[] args)
    {
    Person peter = new Person();
    peter.Alter = 13;

    • @stri3ker718
      @stri3ker718 4 роки тому

      Du hast die Eigenschaft public string Alter statt public int Alter genannt ;)

    • @mrmillennium6533
      @mrmillennium6533 4 роки тому

      @@stri3ker718 Danke!

  • @mrrm5699
    @mrrm5699 2 роки тому

    1 sahne. Aber also ist Value immer das Gegenstück in Grossgeschrieben?

  • @usnirdas802
    @usnirdas802 4 роки тому +2

    Dieses 10 min Video > Bittermanns whacker Unterricht

  • @faras1872
    @faras1872 3 роки тому

    Sehr deutlich erklärt, Vielen Dank!

  • @DeanWinchester-zo9mr
    @DeanWinchester-zo9mr Рік тому

    Ich weiß es ist Vorteilhafter get und set zu verwenden, aber man kann ja auch EIgenschaften in einer Klasse ohne get und set deklarieren dann sind es doch trotzdem schon Eigenschaften, weil du in den ersten Minuten sagst, dass es nur mit get und set Eigenschaften seien?

    • @kunai_kazekun
      @kunai_kazekun Рік тому

      Video ist 6 Jahre alt, vielleicht hat sich was in der Zeit bei C# geändert. Gibt ja immer wieder Aktualisierungen =).

  • @burn3283
    @burn3283 5 років тому +1

    Hallo.
    Jetzt wirst du wahrscheinlich öfter Fragen von mir unter deinen Videos sehen, finde du machst es sehr gut :).
    Ich verstehe den Sinn einfach noch nicht ganz vom "Get" und "Set".
    Klar man kann eine "gelesen" und eine "überschrieben" Bestätigung ausgeben, aber das könnte ich aus z.B. wenn ich auf einen "Hinzufügen Button" drücke mit dem "click-ereigniss" auch ausgeben ?
    Du sprichst da öfter von "da kann niemand von außen darauf zugreifen usw.". Es kann ja sowieso nur darauf zugegriffen werden, wenn ich es so programmiere? Das Programm kann sich ja nicht selbstständig machen und dann willkürlich mit irgendwelchen Methoden darauf zugreifen ?
    Mir ist bewusst das ich da etwas nicht verstehe, sonst würde ja "get" und "set" nicht zum guten Stil gehören.
    Ich hoffe du findest etwas Zeit um mir das ein bisschen genauer zu erklären
    MFG

    • @ProgrammierenStarten
      @ProgrammierenStarten  5 років тому +1

      Hey, schön das dir unsere Video gefallen. Das gute an Gettern und Settern ist, dass du Validierungen einbauen kannst. Nehmen wir mal an, der Wert von einer Variablen die du mit einer Set-Methode setzt, darf nur ein Wert zwischen 1 und 150 sein. Mithilfe der Set-Methode kannst du direkt abfragen, ob der eingegebene Wert eben zwischen 1 und 150 liegt. Sobald dies nicht der Fall ist, kann du das zuweisen beispielsweiße verhindern.

    • @burn3283
      @burn3283 5 років тому

      @@ProgrammierenStarten Ja aber das könnte ich ja im vorhinein verhindern? Ich drücke auf dem Button, dann wird überprüft ob ich zwischen 1 und 150 liege oder `?

    • @le_dateiexplorer1214
      @le_dateiexplorer1214 5 років тому +3

      @@burn3283 Hey, ich weiß nicht, ob sich deine Frage inzwischen geklärt hat, aber hier noch ein kleiner Erklärungsversuch, was diese Getter und Setter überhaupt sollen, da ich das anfangs auch nicht ganz verstanden habe. Zu deinem Vorschlag: Ja, das kann man so machen. Man kann vorher überprüfen, ob der Wert zwischen 1 und 150 liegt und dann erst den Wert der Variablen zuweisen. Aber, jetzt stell dir Mal vor, du hast irgendwann Mal noch einen zweiten Button oder eine andere Option, mit der du den Wert verändern willst. Jetzt müsste man jedes Mal vorher abfragen, ob der Wert in dem gewünschten Bereich liegt, bevor man ihn zuweisen kann (=viel Code und leichte Programmierfehler).
      Arbeitet man stattdessen mit einem Setter, muss man den Code nur einmal schreiben und, egal, wo ich einen neuen Wert zuweisen will, ich kann mir immer sicher sein, dass dieser vorher geprüft wird (=weniger Code und weniger Programmierfehler, die ein Programm schon mal zum Absturz bringen könnten ;)).
      Ich hoffe, das war einigermaßen verständlich und hilfreich :D.
      Viel Spaß weiterhin beim Programmieren.

    • @Senkarae
      @Senkarae 5 років тому

      @@le_dateiexplorer1214 Danke für die Ergänzung. Jetzt hab ich den Sinn auch verstanden.

    • @TerraFantasy
      @TerraFantasy 2 роки тому

      @@le_dateiexplorer1214 Aber kann ich das nicht genauso gut von Member-Funktionen abfragen lassen? Z.B. in einer Funktion "Alter". Da kann ich doch genauso gut zentral prüfen, ob der Wert nur zwischen 1 und 150 liegt und dann erst die entsprechende Variable neu definieren. Mehr Programmieraufwand als z.B. Peter.Alter = 10 ist das mit Alter(10) doch auch nicht oder? Im Hintergrund spielt sich doch das gleiche ab: Es wird eine public Funktion aufgerufen (wie bei "set"), die prüft, ob der Wert zwischen 1 und 150 liegt und dann eine bestimmte private Variable überschreibt (die private Variable "alter"). Mir erschließt sich auch noch nicht ganz der Sinn bzw. Vorteil von get und set. Vielleicht habe ich auch was falsch verstanden.

  • @maksimbronsky7117
    @maksimbronsky7117 4 роки тому

    Ich finde das Video eigentlich auch recht gut, aber ich finde du könntest noch stärker auf den Unterschied von Alter und alter hinarbeiten. Vielleicht ist es auch leichter die Variablen nicht Alter und alter zu nennen (gerade im Gesprochenen ist das leicht verwirrend) und eine Grafik, in dem man sieht wie Alter quasi den Aufpasser für alter macht, wäre auch ganz nice.
    eine_person.alter = 99 => eine_person.Alter (99) => set => eine_Person.alter = 99 (nur als Idee)

  • @mo7aZa
    @mo7aZa 4 роки тому

    ich kann nicht verstehen, warum es 9 Menschen gibt die dieses Video dissliken. dass Video ist doch wirklich gut erklärt. Wenn diese 9 es besser können wäre es doch sehr schön ein Video von denen zu dem Thema zu sehen. Die Erklärung ist sauber und bis auf eine Kleinigkeit im Satz ist da nichts zu beanstanden. Ich hätte nicht den Satz "rein Programmieren" genutzt, aber naja... es ist ein Einsteiger Video.

    • @ProgrammierenStarten
      @ProgrammierenStarten  4 роки тому

      Danke für das Feedback :) Freut uns sehr, dass dir der Inhalt gefallen hat :)

  • @Juliana-mo7ef
    @Juliana-mo7ef 6 років тому +3

    Tolle Tuts ! Aber eine Frage : Kannst du mir das mit value nochmal erklären ? D:

    • @the_mietzedatze
      @the_mietzedatze 4 роки тому +1

      Value ist eine Systemvariable, in welcher automatisch bei einem "get" Aufruf der Wert der privaten Variable steht.

  • @agaefendi
    @agaefendi 5 років тому

    Hi, erstmal Danke und großes Lob für die tollen Videos.
    Eine kurze Frage zu set, wenn ich in der set Methode statt value den public int Alter einfüge wird das peter.Alter in der Konsole nicht mehr mit 10 sondern mit 0 ausgegeben. Mache ich was fallsch oder wie kann das sein?

    • @ProgrammierenStarten
      @ProgrammierenStarten  5 років тому +1

      Poste am besten mal deinen konkreten Code:D

    • @agaefendi
      @agaefendi 5 років тому

      @@ProgrammierenStarten ganz unten habe ich value mit Alter ersetzt

  • @felixbaum1422
    @felixbaum1422 5 років тому

    Was ist eigentlich wenn ich in einer Klasse zwar variablen die Set und Get funktion geben will, muss ich dann den gleichen Code nochmal schreiben?

  • @dontbetoxic4387
    @dontbetoxic4387 4 роки тому

    Ich habe das noch nicht so ganz verstanden mit diesem "daten kapseln" oder wie das heißt, man sagt ja immer, dass man nicht von außen darauf zugreifen kann, was meinst du damit?

    • @ProgrammierenStarten
      @ProgrammierenStarten  4 роки тому +2

      Das eine andere Klasse nicht einfach die Werte dieser Klasse manipulieren kann :)

    • @dontbetoxic4387
      @dontbetoxic4387 4 роки тому +1

      Programmieren Starten und was hat das denn für Vorteile?

    • @100kitten4
      @100kitten4 4 роки тому

      @@ProgrammierenStarten
      aber wird das denn nicht manipuliert falls man zb peter.alter = 10 setzt?

  • @jufg9106
    @jufg9106 5 років тому +10

    Also für jemanden der ursprünglich mit Java angefangen hat zu programmieren, für den ist C# im ersten Moment ziehmlich verwirrend aber am ende doch irgendwie einfacher als Java 😂😂😂

    • @ProgrammierenStarten
      @ProgrammierenStarten  5 років тому +5

      Jeder Mensch tut sich mit etwas anderem leichter :) Du solltest dann wohl bei C# durchstarten, wenn dir das leichter fällt :)

  • @NathanSeraph
    @NathanSeraph 4 роки тому

    So richtig ist mir der Sinn einer public Property mit Standard-Getter und Setter nicht klar. Du sagst der Sinn ist, dass man von außen nicht frei auf eine Variable zugreifen kann. Gut, die Idee und den Sinn verstehe ich. Aber wenn ich eine public property mit Standard-Getter und Setter verwende, dann habe ich doch quasi genau diesen freien Zugriff von außen, den ich eigentlich verhindern will. Ich kann frei lesen und frei schreiben. In diesem Fall, sind Getter und Setter einfach nur zwischengeschaltete Methoden, die unnötige Performance kosten. Deshalb machen Properties für mich nur dann Sinn, wenn man einen modifizierten Getter oder Setter hat, oder z.B. nur einen Getter und keinen Setter, oder nur einen public Getter und einen private Setter ... . Standard-Getter/Setter bringen doch gar nichts. Oder ist mir da irgendein Aspekt entgangen?

  • @TheNononame
    @TheNononame 2 роки тому

    Wieso wird erst "Alter wurde überschrieben" angezeigt und erst dann "Alter wurde gelesen" und dann die 10? Müsste nicht
    "Alter wurde gelesen" ausgegeben werden,
    dann nichts, weil nichts gesetzt wurde, dann
    "Alter wurde überschrieben", weil das "nichts" überschrieben wurde und dann die
    "10"?
    Und müsste es eigentlich nicht ohne "Alter wurde gesetzt" heißen? Überschrieben wird da doch gar nichts, weil ja noch nichts da ist. Wäre super, wenn du da nochmal drauf eingehen könntest. Mich hat es verwirrt.

    • @kunai_kazekun
      @kunai_kazekun Рік тому +1

      Er hat ja am Anfang mit peter.Alter = 10; den Wert gesetzt, daher kommt auch erst die Meldung, dass die Variable überschrieben wurde. Geht ja nicht darum, ob sie wirklich überschrieben wurde, sondern das sie in diesem Moment geändert wird und das soll wiedergegeben werden.
      Set ist also aktuell darauf bezogen, dass wenn der Wert zu irgendeinem Zeitpunkt geändert wird, dieser mit dem Satz: "Wurde überschrieben" dargestellt wird. Der Anfangswert für die Variable ist Null, was ebenfalls ein Wert ist. =)

    • @TheNononame
      @TheNononame Рік тому

      @@kunai_kazekun Danke

  • @timguthoff8896
    @timguthoff8896 5 років тому

    Hallo kann mir bitte jemand helfen VS 2019 erkennt weder get noch set noch value.
    Ich hoff jemand weiß eine Lösung...

  • @nilst1513
    @nilst1513 5 років тому

    Muss, wenn die Eigenschaft Alter heißt, die variabel alter heißen, oder kann man einen anderen Namen nehmen?

  • @aldeen1982
    @aldeen1982 5 років тому

    Danke! Genau das, was du jetzt machst, habe ich so auch schon früher verstanden. IN deinem Video 15/20 "Eigenschaften" erklärst du aber "Alter" als Eigenschaft und nicht als Variable und hast sie von vorn herein als public gesetzt und sie gar nicht als private derklariert. Wieso? Hier wird es klassisch gemacht und im vorherigen Video wird "alter" nur public gesetzt ohne private.

    • @davidbilgic3108
      @davidbilgic3108 5 років тому

      ich glaube, er hat das gemacht, weil das im Hintergrund abläuft. (Hat er ja am Ende des Videos gesagt)

  • @Trunks855
    @Trunks855 5 років тому

    Aber warum muss man value nicht definieren?

  • @wizzrd2545
    @wizzrd2545 4 роки тому

    Wurden in irgendeinem video auch rekursive Methoden besprochen? Voll auch außerhalb dieser plailist

  • @FabianBezmalinovic
    @FabianBezmalinovic 3 роки тому

    wo ist Hendrik?

  • @kleddo3126
    @kleddo3126 5 років тому +1

    Hab es nicht verstanden bin dumm

    • @disturbtion273
      @disturbtion273 4 роки тому +1

      Spielst auch Brawl Stars...

    • @kleddo3126
      @kleddo3126 4 роки тому

      @@disturbtion273 Wow gute Begründung,habs mittlerweile sehr lange davor verstanden.Was ist dein Problem?Willst du bei dem Kanal eine hass Kommentar Community aufbauen?

    • @disturbtion273
      @disturbtion273 4 роки тому +2

      Hey! Bleib ruhig, Ich hab mir einen kleinen Scherz erlaubt. Wird man ja wohl noch machen dürfen!

    • @kleddo3126
      @kleddo3126 4 роки тому

      @@disturbtion273 Ok dann passt ja,aber warum ist das an Brawl Stars aussetzen?

    • @disturbtion273
      @disturbtion273 4 роки тому +3

      @@kleddo3126 Betrachtet man die Grafik und das Spielprinzip erscheint es sehr kindisch... Was nicht heißt, dass es nur für Kinder ist. Mein kleiner Scherz besteht aus reinen Vorurteilen ;D