C# getters & setters 🔒

Поделиться
HTML-код
  • Опубликовано: 29 окт 2024

Комментарии • 85

  • @BroCodez
    @BroCodez  3 года назад +68

    using System;
    namespace MyFirstProgram
    {
    class Program
    {
    static void Main(string[] args)
    {
    //getters & setters = add security to fields by encapsulation
    // They're accessors found within properties
    // properties = combine aspects of both fields and methods (share name with a field)
    // get accessor = used to return the property value
    // set accessor = used to assign a new value
    // value keyword = defines the value being assigned by the set (parameter)

    Car car = new Car(400);
    car.Speed = 1000000000;
    Console.WriteLine(car.Speed);
    Console.ReadKey();
    }
    }
    class Car
    {
    private int speed;
    public Car(int speed)
    {
    Speed = speed;
    }
    public int Speed
    {
    get { return speed; }
    set
    {
    if (value > 500)
    {
    speed = 500;
    }
    else
    {
    speed = value;
    }
    }
    }
    }
    }

    • @reignydaphne
      @reignydaphne 2 года назад

      I tried to run this code but it shows value hasn't been declared! Can you please explain how did you run it?

    • @lifeinloop
      @lifeinloop 2 года назад

      @@reignydaphne value is a keyword that exists inside every set and represents the value that is received.

    • @learnersmail9944
      @learnersmail9944 2 года назад

      thank you bro

  • @scubagoblin
    @scubagoblin Год назад +65

    I just read 15 pages over this concept and walked away more confused than before I started. You explain concepts in such a beginner-friendly way and don't include a lot of random unnecessary stuff. I really appreciate you and the content you make. I feel like a lot of programmers have been coding for so long that they forget to slow down a bit when teaching people.

    • @brunopereira4643
      @brunopereira4643 Год назад +1

      Yea, i understand now, like... now i know what is an namespace, what is a class, methods, etc etc... , but i remember when i started and ask: "TF is that", so we need to be humble and put ourselves in the place of those who are starting.

    • @urmomlolgottem
      @urmomlolgottem 10 месяцев назад

      trying to find tutorials on things not covered by brocode is literally hell good luck out there

    • @lezocsfn1979
      @lezocsfn1979 10 месяцев назад

      to understand a little more about it, watch the video of Brackeys on c# properties

  • @DrN0VA.
    @DrN0VA. Год назад +12

    This really helped me understand. It seems like getters and setters can be described as:
    Do this when someone GETS the variable.
    Do this when someone SETS the variable.

  • @Jordan-qi2dn
    @Jordan-qi2dn 4 месяца назад +8

    If anyone else didn't understand at first I'll try to explain my interpretation.
    The point of getters/setters is so that we can sort of limit/encapsulate information by having a private field, and we have our property sort of act as a decryption key, I don't really know a good analogy for setters/getters. I think we can make things read only if we private the setter though.
    The get accessor is used when we're reading/accessing the value of a property. ie. Console.WriteLine(Class.Property);
    The set accessor is used when we're writing/reassigning the value of a property ie. Class.Property = 550;
    The value keyword comes from what we input in the constructor. You can only access either set/get at a time as you're either reading/writing, and you can put your own logic/conditonal statements in there like bro did with the if/else statements.
    In the write example. when we're instantiating a new car Object, and we input 550 as an argument, we are writing/reassigning.
    Car car_1 = new Car(550); Here we're writing, int value of 550 is in the constructor, therefore we're going to use the set accessor. If our value (550) is greater than 500, it sets the speed to max 500, otherwise our speed will just be set to whatever we inputted as long as it's

  • @TripalYT
    @TripalYT Год назад +16

    After all these years of coding and never understanding any of this. You helped me understand it within 3 minutes. Thank you!

  • @davidesdras45
    @davidesdras45 3 года назад +66

    Man, I always had so much diffilcult with this. But you, you bro, you in a 4 minutes video you managed to explain to me masterfully. You're a legend bro. You just got a new subscribe and fan!

  • @binjozoken6055
    @binjozoken6055 3 года назад +12

    That was a brilliant way of explaining C# properties. Thanks. I'm sure I'll be back to watch it again.

  • @FunnySubmarine-ij4zk
    @FunnySubmarine-ij4zk 7 месяцев назад

    Thank youu. It feels like it's the first time to actually understand what getters & setters are and why we use them.

  • @cactusdoodle8619
    @cactusdoodle8619 2 месяца назад

    Bro, thankyou. I’ve been binging the entire c# series, I’m getting to the real meat and potatoes of my summer project. Properties were so hard to understand through my college course. You’re a great teacher.

  • @JustBen
    @JustBen 2 месяца назад

    Bro, you just explained a concept that college could not! Glad I found this channel.

  • @san_dingus
    @san_dingus Год назад

    Just went through a 2 hour C# course, and it ended right after he showed us classes, fields, and constructors. I don’t think properties and getters/setters were even mentioned.. So, going along with another tutorial, I was very perplexed when he put in { get; set; }. I tried to read the documentation online, but just confused myself even more. Your 4 minute video explained it well enough for me to completely understand it, so thank you!!

  • @32KZ
    @32KZ Год назад +1

    Explaine better than all my teachers combind. thank you for actually letting this make sense.

  • @antoinenowakowski6181
    @antoinenowakowski6181 2 года назад +1

    hello i'm french and we can understand you very well, thanks.

  • @Ally-uj3di
    @Ally-uj3di Год назад

    You have no idea how hard I cried: ""OOOOOOHHHHH!"" After this tutorial. It all makes sense now! THANK YOU!!! I have been asking ChatGPT to explain me this, and it was failing miserably :')

  • @Rahulsingh-theraha
    @Rahulsingh-theraha 2 года назад +5

    Awesome explanation..I was so confused on its use case...But u made me understand completely ☺️

  • @amjadhani8929
    @amjadhani8929 Год назад

    Wow. I understood getters and setters in only 4 minutes. What a great illustration video. Thanks!

  • @stevancosovic4706
    @stevancosovic4706 3 года назад +1

    Thanks bro, very good explanation, this channel deserves more views and support!

  • @Slaygee
    @Slaygee 2 года назад +1

    Thank you, this was the best explanation I've seen.

  • @kroepkroep
    @kroepkroep Год назад +1

    Thank you for the explenation. I guess that the security talked about in this video is about what the user can do? Via the front end?

  • @GalaxyCookies76
    @GalaxyCookies76 Год назад

    Simple explaination, Good Job

  • @diandradeeke
    @diandradeeke 10 месяцев назад +2

    but if you create a unique getter and setter and only programm that the value is set to the value the function gets or returns the current value, than its not different than without using getters and setters, isnt it?

  • @eliaselmokadem2922
    @eliaselmokadem2922 Год назад

    its unbelievable how many times this guy saved my ass from an exam xd

  • @irissupercoolsy
    @irissupercoolsy Год назад +2

    Thank you! Coming from Java, the getters and setters were a bit confusing in C# at first

    • @alberttoo5807
      @alberttoo5807 7 месяцев назад

      I think you could still use the java way or use properties

  • @belajashark
    @belajashark Год назад

    Thank you! Had to watch it 4 times, but now almost understand cause need this)))

  • @user-mf8nu5qe5f
    @user-mf8nu5qe5f Год назад +2

    Hello Bro Code, your vids are always helpful. Could you perhaps do tutorials on C# lambdas and LINQ I feel like you are the only one that could explain them so I can understand thanks

  • @noahyannis2465
    @noahyannis2465 2 года назад +3

    Then why do we use getters and setters in properties if there is no validation/additional code in most setters?

  • @gabrielbarrett9784
    @gabrielbarrett9784 Год назад

    Thanks for making it easier to understand

  • @letuslearn8433
    @letuslearn8433 2 года назад

    It is interesting video.keep it up mr

  • @windows99
    @windows99 2 года назад +3

    I don't understand the difference. If we wanted to limit the editing of the field "speed" by making it private, aren't we allowing it with the set property? In the end, we are allowing editing of speed. I'm a complete beginner, just to note.

    • @cranebird1467
      @cranebird1467 2 года назад

      set&get are methods so you can create only get without set in this case field become read-only.

    • @orvobx7909
      @orvobx7909 Год назад +2

      You are allowing it tk be changed, but you are setting parameters for how it can be changed

  • @bamdad4927
    @bamdad4927 2 года назад +1

    Thanks bro
    Very cool 👍🏻

  • @GuilhermeFrank-y6j
    @GuilhermeFrank-y6j 6 месяцев назад

    Very good video!

  • @30hi31
    @30hi31 Год назад

    Chulada tu video hermanó Gretting from Mexico

  • @e-tradingbd8421
    @e-tradingbd8421 2 года назад

    nice understanding capabilities !!! commendable

  • @meghpatel2219
    @meghpatel2219 3 года назад +3

    Bro please some C# projects, something like you have done in python playlist 🙏

  • @MHX11
    @MHX11 2 года назад +1

    That's an amazing example, thanks so much, you saved a lot of time

  • @ofaydn
    @ofaydn 2 года назад

    thanks for explaining this topic so simple

  • @GothicRK
    @GothicRK 2 года назад

    Wow I FINALLY understood this. Thank you!!

  • @shotgunflamez5608
    @shotgunflamez5608 2 года назад

    2:57 no need for the else statement because if the "if" statement fails it'll just skip it and execute any code that is after the statement. Other than that pretty cool video

    • @easternunit2009
      @easternunit2009 Год назад

      well for this example, he wants to make sure that the speed doesn’t go over 500 right?

  • @isaacurban2790
    @isaacurban2790 2 года назад

    You make things so easy

  • @IntergalacticWither
    @IntergalacticWither 6 месяцев назад

    this is such a good video tysm

  • @o9o947
    @o9o947 2 года назад

    all good and great but how do u call the getter in the main method? u just showed how to call set

  • @codeme8016
    @codeme8016 7 месяцев назад

    Perfect!

  • @danielbertrand8796
    @danielbertrand8796 Год назад +1

    what a bro

  • @elmer5455
    @elmer5455 2 года назад

    thanks always had problems with this.

  • @amplifiedge
    @amplifiedge Год назад

    Thank you Bro!

  • @spartanranger
    @spartanranger 3 года назад

    Thanks for the video Bro.

  • @MichaelS-u6g
    @MichaelS-u6g Год назад

    Love you bro

  • @ciprisad
    @ciprisad 11 месяцев назад +1

    when you make the car object and give its speed you still can make the speed greater than 500, i would like to know how to limit this as well eg:
    Car car1 = new Car(500000);

    • @Ripcraze
      @Ripcraze 10 месяцев назад

      Put the same logic as your setter in your constructor where you set Speed = speed

    • @Jordan-qi2dn
      @Jordan-qi2dn 4 месяца назад

      Your setter should have the condition below, if the value within your constructor is greater than 500, the if statement will cap it at 500, otherwise it accepts the value and initializes speed to it.
      if(value>500)
      {
      speed = 500
      }
      else
      {
      speed = value
      }

  • @kdenisinfo
    @kdenisinfo 2 года назад +1

    Do we need private field per each property? Or not

    • @sok8557
      @sok8557 2 года назад +1

      properties should be public while the fields the properties access should be private (doesnt always have to be, but if you want to apply encapsulation to the fields and use the get set accessors then properties should be public while fields should be private)

    • @sok8557
      @sok8557 2 года назад

      honestly rambled on a lot but tdlr: property: public while field = private (the reason for the property)

  • @jirikunt1457
    @jirikunt1457 Год назад

    My C# teacher would hate you for declaring get set like that xD

  • @김-y8b1s
    @김-y8b1s 2 года назад

    coooool

  • @bhadriramlella7697
    @bhadriramlella7697 Год назад

    How can I take an input in the main function using getters and setters is there any way? If there is please explain me.

    • @bhadriramlella7697
      @bhadriramlella7697 Год назад

      I mean using cin in the main function with getters and setters

  • @mrtaluspa9903
    @mrtaluspa9903 Год назад

    thxxx😍

  • @pieteb_nl
    @pieteb_nl 2 года назад

    Puzzeled you can just use 'speed' in the setter, without defining it as a method parameter. This wouldn't be possible in java.

  • @davidesoltys8411
    @davidesoltys8411 8 месяцев назад +1

    isnt better to call the "private int speed" to "private int _speed" ???

  • @edinetgrunhed6000
    @edinetgrunhed6000 Год назад

    what is '400' in this code ? Car car = new Car(400); how to display that 400?

  • @Lonchanick
    @Lonchanick Год назад

    Field name = PascalCase
    propertyName = camelCase

  • @Cruz0e
    @Cruz0e 2 года назад

    example to my other comment, I just seen something like this
    private int _progress;
    public int progress
    {
    get { return rank == 8 ? 0 : _progress; }
    set
    {
    rank += value / 100;
    _progress = value % 100;
    }
    }

  •  3 года назад

    Thanks Bro!

  • @Cruz0e
    @Cruz0e 2 года назад

    I am not sure why my code/comment disappeared so i write again, but I just wanted to note the private variable + getter/setter does not have to be the same name like
    private speed and public Speed...
    I just seen a code where the variable was called _rank and rank, so it is just about your coding style

    • @Cruz0e
      @Cruz0e 2 года назад

      so they do not have to share the same name

  • @vimukthikulasekara4724
    @vimukthikulasekara4724 7 месяцев назад

    chad bro

  • @McPatoo
    @McPatoo Год назад

    Another1 :))))🤑

  • @Saskamon
    @Saskamon 2 года назад

    Getters and Setters sounds like Jeepers Creepers to me.

  • @whitedinamo
    @whitedinamo 2 года назад

    lesson check😇

  • @maxyan2572
    @maxyan2572 Год назад

    noice

  • @triton5457
    @triton5457 2 года назад

    burger 🍔

  • @drake_eric9799
    @drake_eric9799 2 года назад

    How to use this in string In field get set

    • @drake_eric9799
      @drake_eric9799 2 года назад

      Now I know I always mistake in curly braceses