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)
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.
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!
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
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.
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.
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?
Explaine better than all my teachers combind. thank you for actually letting this make sense.
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!!
Awesome explanation..I was so confused on its use case...But u made me understand completely ☺️
hello i'm french and we can understand you very well, thanks.
Wow. I understood getters and setters in only 4 minutes. What a great illustration video. 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 :')
Thank you, this was the best explanation I've seen.
Thanks bro, very good explanation, this channel deserves more views and support!
Then why do we use getters and setters in properties if there is no validation/additional code in most setters?
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?
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.
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
Very good video!
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
Simple explaination, Good Job
Thank you! Had to watch it 4 times, but now almost understand cause need this)))
nice understanding capabilities !!! commendable
Thanks bro
Very cool 👍🏻
That's an amazing example, thanks so much, you saved a lot of time
Chulada tu video hermanó Gretting from Mexico
It is interesting video.keep it up mr
Thanks for making it easier to understand
Wow I FINALLY understood this. Thank you!!
Bro please some C# projects, something like you have done in python playlist 🙏
this is such a good video tysm
thanks for explaining this topic so simple
Perfect!
You make things so easy
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?
what a bro
Thank 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
}
thanks always had problems with this.
Thanks for the video Bro.
Love you bro
My C# teacher would hate you for declaring get set like that xD
coooool
all good and great but how do u call the getter in the main method? u just showed how to call set
chad bro
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)
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
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;
}
}
Puzzeled you can just use 'speed' in the setter, without defining it as a method parameter. This wouldn't be possible in java.
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
Thanks Bro!
what is '400' in this code ? Car car = new Car(400); how to display that 400?
noice
Another1 :))))🤑
isnt better to call the "private int speed" to "private int _speed" ???
thxxx😍
Getters and Setters sounds like Jeepers Creepers to me.
lesson check😇
burger 🍔
How to use this in string In field get set
Now I know I always mistake in curly braceses