//NAMESPACES
//LIBRARIES
//ACCESS MODIFIERS
/*
- Private, Public, Protected.
- Por default las variables son privadas.
- Private es acceso a nivel de clase.
- Public es acceso a nivel de namespace.
- Protected es acceso a nivel de herencia.
*/
//PROPERTIES
/*
*/
public string name;
public string name {get; set;}
public bool isOn { get; private set;}
//SETTERS & GETTERS
/*
Usar SETTERS & GETTERS para manipular los datos es una manera importante de encapsular la lógica de como se asignan estos datos
*/
protected string _name;
public string name{
get{
return _name;
}
set{
_name = value; //Value es el valor por defecto que reciben los SETTER.
}
}
//Using SETTER & GETTER
object.name = "New Name"; //Setter
object.name; //Getter
//CONSTRUCTORS
/*
*/
public NameOfTheClass(string name){
_name = name; //Usando la propiedad directamente, no usaría la lógica del SETTER.
this.name = name;
}
//MEHTODS
//public bool isOn { get; private set;}
public void TurnOn(){
isOn = true;
}
public void TurnOff(){
isOn = false;
}
//Or using a single method
//Make TurnOn and TurnOff protected
public void TogglePower(){
if (isOn){
TurnOff();
}else {
TurnOn();
}
}