본문 바로가기

Programming/CSharp

String.Split으로 토큰 단위로 파싱하기 C++에서는 strtok 계열의 함수를 사용해서 토큰 단위로 문자열을 나눌 수 있습니다.MFC에서는 AfxExtractSubString() 함수를 통해서 문자열을 토큰 단위로 나눌 수 있습니다.아래 링크를 클릭하면 AfxExtractSubString() 함수에 대한 내용을 확인할 수 있습니다.2015/06/22 - [Programming/Win32&MFC&COM] - CString 토큰(Token)으로 분리시키기(AfxExtractSubString)C#에서는 String.Split()으로 쉽게 파싱할 수 있습니다.C#에서 String.Split으로 문자열을 파싱하는 방법입니다. static void Main(string[] args) { string text = "ABC\nDEF\tGHI JKL"; ch.. 더보기
sealed 키워드를 사용한 클래스 상속 방지 C++에서는 일반적으로 상속을 막는 방법이 없었습니다.MFC에서는 CString을 상속해서 확장하는 것을 권하지 않고 있습니다.(CString은 CStringT 템플릿을 사용하게 되어 있는데 소멸자가 virtual이 아닙니다.)하지만 이것을 강제할 방법은 없었습니다.다만 C++11 이후에 상속을 막을 수 있는 키워드가 추가 되었습니다.다음 링크에서 확인이 가능합니다.2014/12/21 - [Programming/C++11&14] - [C++11] final과 override물론 생성자등을 private로 선언하거나 하면, 원하는 기능을 구현할 수는 있습니다.하지만 C#에서는 좀 더 쉽게 상속을 막을 수 있는 장치가 마련되어 있습니다.이렇게 무분별한 상속을 막기 위해서 C#에서는 sealed라는 키워드가 .. 더보기
C#의 Property(속성) C#에서는 기본으로 제공하는 Property라는 것이 있습니다.기존의 C++이나 JAVA 같은 경우에는 Property와 같은 역할을 하는 것이 Getter와 Setter라는 함수입니다.객체의 속성을 나타내는 멤버 변수는 대부분 private 내지는 protected 형식으로 정의가 됩니다.하지만, 이렇게 되면 외부에서는 직접 접근이 불가능합니다. 이럴 때, Getter와 Setter를 사용해서 값을 수정하고 가져오게 됩니다.기존에는 클래스가 int x와 int y를 갖고 있을 때, 이 값을 가져올 때는 GetX()를 사용하고 SetX()를 생성해서 값을 입력할 때 사용합니다.해당 클래스를 사용하는 입장이나 작성하는 입장이나 굉장히 불편한 방법입니다.그래서 C#에서는 Property라는 것을 기본적으로 .. 더보기
C# 물음표 2개(??) 연산자 C#에는 ??(물음표 2개)라는 연산자가 존재합니다.??는 ?? 앞의 값을 기준으로 ?? 앞의 값이 null이면 뒤의 값을 대입하고 ?? 앞의 값이 null이 아니면 앞을 값을 대입하는 것입니다.소스 코드를 보면서 확인해 보겠습니다. using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace ConsoleApplication5 { class Program { static void Main(string[] args) { string szTemp = "Hello World"; string szRes = szTemp ?? "Bye World"; .. 더보기
C#의 키워드(Keywords) 프로그래밍 언어에서 가장 기본이 되는 것은 키워드입니다. 보통 프로그래밍 언어에서 예약어는 특별한 기능을 하기 때문에 변수명으로 사용이 불가능합니다.다만 C#에서는 @를 앞에 추가하면 변수명으로 사용이 가능합니다.@if 등의 변수명으로 생성이 가능합니다.다만 굳이 저렇게 변수명을 지을 필요는 없을 것 같습니다.C#이 지원하는 키워드는 다음과 같습니다. abstract as base bool break byte case catch char checked class const continue decimal default delegate do double else enum event explicit extern false finally fixed float for foreach goto if implicit .. 더보기