
interface IMyInterface // Interface, 멤버 정의
{
void Method1();
void Method2(string s);
}
class MyClass : IMyInterface
{
public void Method1()
{
Console.Write("hi "); // class에서 구현
}
public void Method2(string s)
{
Console.WriteLine(s);
}
}
static void Main(string[] args)
{
Console.Write("단어를 입력하세요 : ");
string s = Console.ReadLine();
MyClass myClass = new MyClass();
myClass.Method1();
myClass.Method2(s);
}

Interface 및 멤버를 정의해주고 class에서 구현을 해주면 된다.
Interface는 다중 상속을 제공하고, 코드의 재사용에 용이해서 유연한 설계가 가능하게 해준다.
enum Today // Enums 정의
{
Sunday,
Monday,
Tuesday,
Wednesday,
Thursday,
Friday,
Saturday
}
static void Main(string[] args)
{
Today day = Today.Monday; // Enums 사용
Console.WriteLine($"오늘은 {day}입니다.");
}

Enums(열거형)은 의미 있는 이름을 사용하여 가독성을 향상되게 해준다.
switch문과 사용할때 분기를 쉽게 작성할 수 있어서 굉장히 유용하다.
enum MyEnum
{
Value1 = 10,
Value2,
Value3 = 20
}
Enums를 정의 할때 값을 지정해줄 수 있는데, 위에 코드에서 Value2는 Value1의 +1인 11이 된다.
지정 해주지 않았을때는 처음엔 0부터 시작되고 +1씩 늘어난다. 형변환도 가능하다.
개인 과제를 하면서 강의자료를 보는데 뭔가 내일 과제를 할때 이녀석들이 유용할 것 같아서
다시 공부해두었다. 머리가 굉장히 말랑말랑 해지면서도 정수리가 뜨거웠다.