상수를 콤마( , )로 모아놓은 열거형 "클래스"
enum : enumerations (= 구체적으로 나열) 의미.
const 키워드로 정의하는 상수처럼 변경 불가.
Class와 유사점・차이점 있음
각 상수에 대해서 개별 속성값 지정도 가능.
다른 Class 안에서 사용 가능.
Switch 구문 안에서도 사용 가능.
반복문에서도 사용 가능.
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace cs_04Program
{
internal class Program
{
enum HomeTown
{
SEOUL,
DAEJEON,
DAEGU,
BUSAN,
JEJU
}
static void Main(string[] args)
{
HomeTown myHomeTown;
myHomeTown = HomeTown.BUSAN;
if(myHomeTown == HomeTown.SEOUL)
{
Console.WriteLine("서울 출신이시군요!");
}
else if (myHomeTown == HomeTown.BUSAN)
{
Console.WriteLine("부산 출신이시군요!");
}
else if (myHomeTown == HomeTown.DAEGU)
{
Console.WriteLine("대구 출신이시군요!");
}
else if (myHomeTown == HomeTown.DAEJEON)
{
Console.WriteLine("대전 출신이시군요!");
}
else if (myHomeTown == HomeTown.JEJU)
{
Console.WriteLine("제주 출신이시군요!");
}
else { Console.WriteLine("지방 출신이시군요!"); }
}
}
}
! <자료형>?
으로 변수를 만들면 변수안에 null 값을 넣을 수 있게된다.
nullable 2가지 속성
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace cs05_nullable
{
internal class Program
{
static void Main(string[] args)
{
//int a = null; // int a는 null 값을 담을 수 없음
int? a = null; // C# 6.0 Nullable
Console.WriteLine(a == null);
// Console.WriteLine(a.GetType()); 예외발생 : 널형태는 없음
int b = 0;
Console.WriteLine(b == null);
Console.WriteLine(b.GetType());
// 값형식 byte, short, int, long, float, double, char 등은 null을 할당 X
// null을 할당할 수 있도록 만드는 방식 : type? 형태로 만들어주면 됨
float? c = null;
Console.WriteLine(c.HasValue); // false(null이라서)
// Console.WriteLine(c.Value); 에러발생
Console.WriteLine(c);
c = 3.1415f;
Console.WriteLine(c.HasValue); // true(null이 아니라서)
Console.WriteLine(c.Value);
Console.WriteLine(c);
}
}
}
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace cs06_var
{
internal class Program
{
static void Main(string[] args)
{
var a = 2000000;
Console.WriteLine("Type : {0}, Value : {1}", a.GetType(), a);
var b = 3.141592f; // f여부에 따라 double / float 지정
Console.WriteLine("Type : {0}, Value : {1}", b.GetType(), b);
var c = "Basic C#";
Console.WriteLine("Type : {0}, Value : {1}", c.GetType(), c);
}
}
}
공용 형식 시스템이라는 .NET 프레임워크의 형식 체계의 표준 준수
사용권장 X
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace cs07_cts
{
internal class Program
{
static void Main(string[] args)
{
System.Int32 a = 12345; //CTS
int b = 12345;
Console.WriteLine(a.GetType());
Console.WriteLine(a);
Console.WriteLine(b.GetType());
Console.WriteLine(b);
System.String d = "abcdef"; //CTS 비추천
string e = "abcdef";
Console.WriteLine(d.GetType());
Console.WriteLine(e.GetType());
}
}
}
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace cs09_NullCondition
{
internal class Program
{
static void Main(string[] args)
{
Foo myFoo = null;
/*
int? bar; // null값을 받을 수 있는 변수 생성(int?)
if(myFoo != null)
{
bar = myFoo.member;
}
else
{
bar = null;
}*/
// 위의 주석부분을 한줄로 줄인 코드
int? bar = myFoo?.member;
Console.WriteLine(bar);
}
}
}
class Foo
{
public int member;
}
숫자 형식에 있는 Parse 또는 TryParse 메서드를 호출하여 string을 숫자로 변환한다
문자열 안에 숫자가 아는 문자는 존재할 수 없다(TryParse를 사용하여 예외가 발생하지 않고 형변환 할 수 있다)
var number = int.Parse("11"))
originstr = "123.4c";
float ffval;
float.TryParse(originstr,out ffval); //형변환 할 수 없다면 0반환
Console.WriteLine("TryParse(char,float) : {0}\n",ffval);