И маппер автоматически
enum Colors {
White,
Black
}
class Rectangle {
DrawUsingEnum(color: Colors){
switch(color){
case Colors.White: {
//..draw white rect
}
case Colors.Black: {
//..draw black rect
}
}
}
DrawUsingNumber(color: number){
switch(color){
case 1: { //let say you draw the WHITE one when you passed 1
//..draw white
}
case 2: { //it's for black
//..draw BLACK one
}
}
}
DrawUsingString(color: string) {
switch(color){
case "white": {
//...draw white rect
}
case "black": {
//...draw black rect
}
}
}
}
class Program{
Main() {
var rect1 = new Rectangle();
rect1.DrawUsingEnum(Colors.White) // pass enum as a parameter. No WAY to pass smth else like Colors.Red
rect1.DrawUsingNumber(999) // what happens here??? we handle only 1 & 2
rect1.DrawUsingString("red") // again we do not have case for "red"
}
}