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; } } } } }
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.
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.
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.
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
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!
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.
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!!
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 :')
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?
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
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.
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
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);
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 }
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)
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; } }
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
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;
}
}
}
}
}
I tried to run this code but it shows value hasn't been declared! Can you please explain how did you run it?
@@reignydaphne value is a keyword that exists inside every set and represents the value that is received.
thank you bro
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.
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.
trying to find tutorials on things not covered by brocode is literally hell good luck out there
to understand a little more about it, watch the video of Brackeys on c# properties
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.
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
After all these years of coding and never understanding any of this. You helped me understand it within 3 minutes. Thank you!
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!
That was a brilliant way of explaining C# properties. Thanks. I'm sure I'll be back to watch it again.
Thank youu. It feels like it's the first time to actually understand what getters & setters are and why we use them.
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.
Bro, you just explained a concept that college could not! Glad I found this channel.
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!!
Explaine better than all my teachers combind. thank you for actually letting this make sense.
hello i'm french and we can understand you very well, thanks.
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 :')
Awesome explanation..I was so confused on its use case...But u made me understand completely ☺️
Wow. I understood getters and setters in only 4 minutes. What a great illustration video. Thanks!
Thanks bro, very good explanation, this channel deserves more views and support!
Thank you, this was the best explanation I've seen.
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?
Simple explaination, Good Job
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?
its unbelievable how many times this guy saved my ass from an exam xd
Thank you! Coming from Java, the getters and setters were a bit confusing in C# at first
I think you could still use the java way or use properties
Thank you! Had to watch it 4 times, but now almost understand cause need this)))
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
Then why do we use getters and setters in properties if there is no validation/additional code in most setters?
Thanks for making it easier to understand
It is interesting video.keep it up mr
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.
set&get are methods so you can create only get without set in this case field become read-only.
You are allowing it tk be changed, but you are setting parameters for how it can be changed
Thanks bro
Very cool 👍🏻
Very good video!
Chulada tu video hermanó Gretting from Mexico
nice understanding capabilities !!! commendable
Bro please some C# projects, something like you have done in python playlist 🙏
That's an amazing example, thanks so much, you saved a lot of time
thanks for explaining this topic so simple
Wow I FINALLY understood this. Thank you!!
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
well for this example, he wants to make sure that the speed doesn’t go over 500 right?
You make things so easy
this is such a good video tysm
all good and great but how do u call the getter in the main method? u just showed how to call set
Perfect!
what a bro
thanks always had problems with this.
Thank you Bro!
Thanks for the video Bro.
Love you bro
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);
Put the same logic as your setter in your constructor where you set Speed = speed
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
}
Do we need private field per each property? Or not
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)
honestly rambled on a lot but tdlr: property: public while field = private (the reason for the property)
My C# teacher would hate you for declaring get set like that xD
coooool
How can I take an input in the main function using getters and setters is there any way? If there is please explain me.
I mean using cin in the main function with getters and setters
thxxx😍
Puzzeled you can just use 'speed' in the setter, without defining it as a method parameter. This wouldn't be possible in java.
isnt better to call the "private int speed" to "private int _speed" ???
what is '400' in this code ? Car car = new Car(400); how to display that 400?
Field name = PascalCase
propertyName = camelCase
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;
}
}
Thanks Bro!
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
so they do not have to share the same name
chad bro
Another1 :))))🤑
Getters and Setters sounds like Jeepers Creepers to me.
lesson check😇
noice
burger 🍔
How to use this in string In field get set
Now I know I always mistake in curly braceses