C# getters & setters 🔒

Поделиться
HTML-код
  • Опубликовано: 26 авг 2024
  • C# getters and setters encapsulation tutorial example explained
    #C# #getters #setters
    //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)

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

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

    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 10 месяцев назад +56

    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 10 месяцев назад +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 8 месяцев назад

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

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

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

  • @DrN0VA.
    @DrN0VA. 11 месяцев назад +11

    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.

  • @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 года назад +67

    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!

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

    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

  • @cactusdoodle8619
    @cactusdoodle8619 18 дней назад

    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 20 дней назад

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

  • @binjozoken6055
    @binjozoken6055 2 года назад +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 5 месяцев назад

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

  • @diandradeeke
    @diandradeeke 8 месяцев назад +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?

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

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

  • @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!!

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

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

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

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

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

    Wow. I understood getters and setters in only 4 minutes. What a great illustration video. 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 :')

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

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

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

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

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

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

  • @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?

  • @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

  • @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

  • @user-nv4qw4cv6w
    @user-nv4qw4cv6w 3 месяца назад

    Very good video!

  • @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 5 месяцев назад

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

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

    Simple explaination, Good Job

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

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

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

    nice understanding capabilities !!! commendable

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

    Thanks bro
    Very cool 👍🏻

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

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

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

    Chulada tu video hermanó Gretting from Mexico

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

    It is interesting video.keep it up mr

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

    Thanks for making it easier to understand

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

    Wow I FINALLY understood this. Thank you!!

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

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

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

    this is such a good video tysm

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

    thanks for explaining this topic so simple

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

    Perfect!

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

    You make things so easy

  • @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?

  • @danielbertrand8796
    @danielbertrand8796 10 месяцев назад +1

    what a bro

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

    Thank you Bro!

  • @ciprisad
    @ciprisad 9 месяцев назад +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 8 месяцев назад

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

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

      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
      }

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

    thanks always had problems with this.

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

    Thanks for the video Bro.

  • @user-yz5vq1yb8o
    @user-yz5vq1yb8o Год назад

    Love you bro

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

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

  • @user-mu3bh4nt3b
    @user-mu3bh4nt3b 2 года назад

    coooool

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

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

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

    chad bro

  • @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)

  • @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

  • @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;
    }
    }

  • @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.

  • @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

  •  3 года назад

    Thanks Bro!

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

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

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

    noice

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

    Another1 :))))🤑

  • @davidesoltys8411
    @davidesoltys8411 5 месяцев назад

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

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

    thxxx😍

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

    Getters and Setters sounds like Jeepers Creepers to me.

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

    lesson check😇

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

    burger 🍔

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

    How to use this in string In field get set

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

      Now I know I always mistake in curly braceses