본문 바로가기

2017/11

[C#] 문자열 보간 ($) 흔히 문자열을 출력하는 경우를 보겠습니다. string s = "guest"; Console.WriteLine("안녕하세요. {0}님", s); 여기서 문자열 보간기능을 하는 $문자를 사용하면 다음처럼 간단히 문자열 표현이 가능합니다. string s = "guest"; Console.WriteLine($"안녕하세요. {s}님"); 문자열 보간은 컴파일시에 단지 소스코드를 string.Format변환할 뿐이므로 string.Format형식에 맞는 포멧을 지정할 수 있습니다. Console.WriteLine($"안녕하세요. {s.ToUpper()}님"); 더보기
[C#] ArrayList System.Collections.ArrayList를 사용하면 object형및 그와 호환가능한 모든 타입을 배열로 처리할 수 있습니다. 단순 배열이라면 string[] s = new string[10]; 위와 같은경우 문자열만 담을 수 있지만 ArrayList는 System.Collections.ArrayList al = new System.Collections.ArrayList(); al.Add("abc"); al.Add(123); al.Add(true); 예제와 같은 형태의 처리가 가능합니다. 다만 요소에 따라 박싱(Boxing)이 발생할 수 있기에 성능면에서는 약점이 있습니다. 또한 배열은 처음부터 크기가 정해져 있으나 ArrayList에서는 Add메서드를 호출하여 추가하는만큼 유동적으로 크기가 늘.. 더보기
[C#] 선택적 매개변수 메서드 구현시 매개변수에 값이 지정되지 않으면 미리 정해놓은 값을 사용하도록 하는 경우가 있습니다. 대부분 이렇게 하려면 메서드를 오버로드하는 것으로 해결하곤 합니다. static void Main(string[] args) { input_member("홍길동"); input_member("홍길동", 30); input_member("홍길동", 30, "seoul"); Console.Read(); } static void input_member(string name) { input_member(name, 30, "seoul"); } static void input_member(string name, int age) { input_member(name, age, "seoul"); } static void .. 더보기
[C#] Task Task는 비동기 호출에 사용될 수 있습니다. static void Main(string[] args) { Task t = new Task(() => { getMyData(); }); t.Start(); Console.WriteLine("현재 스레드 완료"); Console.Read(); } static void getMyData() { using (FileStream fs = new FileStream("test.txt", FileMode.Open, FileAccess.Read, FileShare.None)) { byte[] b = new byte[fs.Length]; fs.Read(b, 0, b.Length); string s = Encoding.UTF8.GetString(b); Console.Wri.. 더보기