type 변수이름 = 값;
using System;
namespace HelloWorld
{
class Program
{
static void Main(string[] args)
{
Console.WriteLine("Hello World");
}
}
}
주석 안에 변경 내용도 업데이트 해주어야 한다.
public enum Season
{
Spring,
Summer,
Autumn,
Winter
}
public class EnumConversionExample
{
publicstaticvoidMain()
{
Season a=Season.Autumn;
Console.WriteLine($"Integral value of {a} is {(int)a}");
//output : Integral value of Autumn is 2
var b = (Season)1;
Console.WriteLine(b); //output: Summer
var c = (Season)4;
Console.WriteLine(c); //output: 4
}
}
이넘 플래그
위의 타입이 다르지만 기능이 같은 함수를 오버로딩하면 아래처럼 됨
그러나 오버로딩은 실수할 여지가 많아 잘 사용하지 않고,
직관적으로 위에 처럼 하거나 제너릭을 많이 이용
레퍼런스 타입
ref와 동일
out의 경우 어떤 값이라도 꼭 할당을 해야하지만 ref는 하지 않아도 무방
정말정말 많이 쓴다
UI출력 등..
인덱스로 바로 접근할 수 있어 빠름
new로 만든 객체들이 저장
new는 하지만 delete는 하지 않는다
-> Garbage Collector 때문
필요없는 메모리를 자동으로 해제
단점 : 해제하는 과정에서 가끔씩 멈칫 멈칫 픽이 튄다
극복 : 힙 영역을 한번에 많이 할당