본문 바로가기

.NET/C#

(19)
[C#] 문자열 05 - IndexOf() 문자열 찾기 String 클래스의 IndexOf() 메서드로 문자열 내에서 특정 문자 또는 부분 문자열이 시작되는 위치를 찾을 수 있다. string.IndexOf(string) - 문자열 내에서 지정된 문자열이 처음 등장하기 시작하는 인덱스를 반환한다. 문자열이 등장하지 않을 경우 -1을 반환한다. 자매품으로 string.IndexOf(char)도 가능하다. // 14 출력 Console.WriteLine("When you have faults, do not fear to abandon them.".IndexOf("faults").ToString()); // -1 출력 string str = "Age is no guarantee of maturity."; Console.WriteLine(str.IndexOf("th..
[C#] Thread가 백그라운드에서 살아있을 때 3줄 요약 Thread.IsBackgroud 를 true로 하면 응용프로그램이 종료될 때 스레드가 함께 종료된다. Thread.Abort()는 사용하지 말자. new Thread( myThreadFunc ) { IsBackgroud = true }.Start(); 로 스레드 한 줄 실행 가능. 일정한 동작을 반복하는 무한 루프 형태의 Thread는 응용프로그램이 종료될 때 함께 종료되어야 한다. 그래서 보통 아래와 같이 스레드에서 무한정 도는 루프를 스레드 외부에서 탈출시키기 위한 조건 변수를 매개로 동작을 제어하는 방법을 사용한다. private void button_Start_Click( object sender, EventArgs e ) { new Thread(loop).Start(); } priv..
[C#] 문자열 04 - IsNullOrEmpty(), IsNullOrWhiteSpace() 문자열 판별하기 반드시 필요한 메서드는 아니지만 string 클래스에서는 비교적 코드를 깔끔하게 작성할 수 있도록 몇 가지 종류의 판별 메서드를 제공한다. 1. bool string.IsNullOrEmpty(string) 지정된 문자열이 null이거나 빈 문자열(길이가 0)인 경우 true를, 그렇지 않은 경우 false를 반환한다. void button_Click( object sender, EventArgs e ) { if ( !string.IsNullOrEmpty( textBox1.Text ) ) { MessageBox.Show( textBox1.Text ); } else { MessageBox.Show( "Empty." ); } } // Decompiled String.cs public static bool Is..
[C#] 문자열 03 - Trim(), TrimStart(), TrimEnd() 문자열의 시작 또는 끝에서 지정된 문자들을 모두 제거하는 메서드이다. Function Description string Trim(params char[] trimChars) 문자열의 선행과 후행에서 등장하는 지정된 문자 배열의 요소들을 모두 제거한다. string TrimStart(params char[] trimChars) 문자열의 선행에서 등장하는 지정된 문자 배열의 요소들을 모두 제거한다. string TrimEnd(params char[] trimChars) 문자열의 후행에서 등장하는 지정된 문자 배열의 요소들을 모두 제거한다. 세 함수 모두 params 형식의 매개변수를 취하고 있으며, 만약 매개변수가 지정되지 않거나(=null) 빈 배열인 경우 공백 문자를 대신 제거한다. var str = "..
[C#] 문자열 02 - Substring()으로 부분 문자열 가져오기 String.Substring()은 문자열에서 부분 문자열을 가져오는 메서드이다. 1. String.Substring(int startIndex) 문자열의 startIndex 위치부터 문자열의 마지막까지를 새로운 문자열로 생성하여 반환한다. var result = "This is example string.".Substring(6); Console.WriteLine(result);// Output : s is example string. 2. String.Substring(int startIndex, int length) 문자열의 startIndex 위치부터 length 만큼의 문자들을 새로운 문자열로 생성하여 반환한다. var result = "This is example string.".Substri..
[C#] 문자열 01 - Split()으로 문자열 분할하기 string 클래스의 멤버 메서드인 Split()은 특정 문자를 기준으로 문자열을 분할해준다. Split()의 인자로 분할의 기준이 될 문자 혹은 문자열을 Separator(분리 기호)로 지정할 수 있다. 메서드의 결과물은 string[]으로, 분리 기호를 기준으로 분할된 부분 문자열들이 포함된 배열이다. 사용 예1 var result1 = "apple.banana,tomato".Split('.', ','); // result1 = ["apple", "banana", "tomato"] var result2 = "apple.banana,tomato".Split('.'); // result2 = ["apple", "banana,tomato"] var result3 = "apple.banana.tomato"...
[C#] try~catch~finally 구문 사용법 try~catch~finally 구문은 예외를 처리하기 위해 사용하는 구문이며 try~, catch~, finally~의 총 세 개의 절로 구성된다. 단, finally 절은 선택 사항이므로 반드시 사용해야 하는 것은 아니다. 1. try 절 try라는 단어에서 알 수 있듯이, 이 구문은 try { }로 감싸진 블록 내의 코드를 수행하려고 시도한다. 만약 블록 내의 코드를 수행하는 도중 예외가 발생할 경우 코드의 처리를 중단하고, 발생한 예외를 가지고 catch 절로 이동한다. 2. catch 절 catch 절은 예외를 받는 역할을 한다. try { double d = a / b; } catch { Console.WriteLine("error!"); } 만약 위 코드의 try 절에서 b가 0인 경우 Di..
[C#] ref 형식 파라미터 사용법 ref 형식 파라미터와 짝을 이루는 out 형식 파라미터에 대한 설명은 아래 글 참고. [C#] out 형식 파라미터 사용법 메서드에서 두 개 이상의 값을 반환해야 하는 경우는 매우 빈번하다. 하지만 반환형이 void가 아닌 메서드에 대해서 반환 값은 반드시 1개만 존재할 수 있다. 이러한 경우 out 형식 파라미터를 사 cs-solution.tistory.com ref 형식 파라미터는 값 형식 변수를 메서드의 파라미터로 전달하는 경우에도 참조 형식 변수처럼 메서드 내부에서 메서드 외부에 존재하는 실제 변수에 접근하여 값을 변경할 수 있도록 해주는 키워드이다. 쉽게 말해서 C/C++의 포인터이다. 가장 좋은 사용 예는 역시 두 변수의 값을 서로 바꿔주는 Swap 메서드이다. 1. Swap 메서드를 C++..
[C#] 속성(Property)이란 무엇인가? 속성(Property)은 C#에서 제공하는 특수한 메서드로, 비공개 멤버에 대한 접근이나 설정 방법을 안전하게 클래스 외부로 제공하기 위한 기술이다. 쉽게 말해서 접근자와 설정자인데, java를 배워본 사람이라면 알겠지만 흔히 private 멤버를 클래스의 외부에서 가져오거나 설정하기 위해 get(), set() 메서드를 만드는 바로 그것이다. 일반적으로 private 멤버는 클래스 외부에서는 접근할 수 없다. 그런데 만약 클래스 외부에서 값을 가져오거나 혹은 설정해야 할 일이 있을 경우 이런 방법으로 코드를 작성할 수 있다. class MyClass { private int myMember; public int GetMyMember() { return myMember; } public void SetM..
[C#] out 형식 파라미터 사용법 메서드에서 두 개 이상의 값을 반환해야 하는 경우는 매우 빈번하다. 하지만 반환형이 void가 아닌 메서드에 대해서 반환 값은 반드시 1개만 존재할 수 있다. 이러한 경우 out 형식 파라미터를 사용하여 여러 개의 값을 메서드의 결과물로써 받아올 수 있다. out 키워드의 사용법은 다음과 같다. // x를 y로 나눈 결과를 반환하는 메서드 bool TryDivide(double x, double y, out double result) { result = double.NaN;// out 형식 파라미터는 반드시 최소 1회 값을 지정해줘야 한다. if(y == 0) return false; result = x / y; return true; } 주석으로 명시해놨듯이 out 형식의 매개변수는 메서드가 종료되기 ..