Languages(59)
-
[C#] switch 문과 when 절, 그리고 switch 식
*이 글은 책을 바탕으로 공부한 글입니다. 조건문은 논리적인 프로그램을 작성하는 데 필요한 부분이다. if, else if, else 문과 함께 switch 문이라는 것도 배우게 된다. switch 문에 사용되는 조건식은 정수 형식과 문자열 형식만 지원을 한다. C# 7.0부터는 데이터 형식을 조건으로 사용할 수도 있게 된 것 같다. 데이터 형식 사용 예 object obj = 123; // Boxing switch (obj) { case int i: // obj에 담겨 있는 데이터 형식에 따라 case절 분기 ... break; case float f: ... break; default: ... break; } 데이터 형식에 따라 분기할 때는 case 절에서 데이터 형식 옆에 반드시 식별자를 붙여줘야 ..
2022.03.13 -
[C#] TryParse() VS Parse()
C#에서 제공하는 기본 숫자 형식은 Parse()와 TryParse() 메소드를 제공한다. 문자열(string)을 숫자로 변환시켜야할 상황이 있을 때 사용하는 메소드들이다. 둘은 어떤 차이점이 있을까? Parse( ) string _string = "123"; int iData = int.Parse(_string); float fData = float.Parse(_string); double ... char ... 문자열을 지정된 형식의 숫자 타입으로 변환해주는 메소드다. 다만, 변환을 실패했을 때 예외를 발생시킨다. TryParse( ) string _string = "123"; if (int.TryParse(_string, out int result) { int data = result; ... } ..
2022.03.13 -
[C#] Null과 관련된 연산자들(?, [ ]?, ??)
*이 글은 책을 바탕으로 공부한 글입니다. 프로그래밍을 하다 보면, Null이라는 값을 필연적으로 사용할 때가 많다. Null 값을 할당하고, 그 값을 토대로 어떠한 연산을 하려고 하면 예외(NullReference)가 발생하기 때문에 사전 검사를 먼저 해줘야 한다. 그래서 다음과 같이 검사를 먼저 해주곤 했다. void Function(Object obj) { if (obj != null) { ... } } 하지만, 이런 검사 방식은 조건문이 많아진다면 읽기가 불편해지는 경향이 있었다. 좀 더 축약해서 간편하게 쓸 수 있는 방법이 없을까란 생각과 함께 C# 문법에 대해 더 찾아봤다. 그리고 C# 6.0부터 위에서 고민했던 기능들을 지원하는 것을 확인했다. 1. Null 조건부 연산자 ?. 연산자 객체의..
2022.03.13 -
[C#] 문자열 서식 맞추기 (string.Format(), 문자열 보간)
*이 글은 책을 바탕으로 공부한 글입니다. 숫자만큼 많이 다루는 게 문자열이라고 했다. 문자열을 다루다 보면, 서식을 갖출 필요가 있을 때가 있다. Publisher Author Title Marvel Stan Lee Iron Man Hanbit Sanghyun Park This is C# Prentice Hall K&R The C Programming Language 유용하게 다룰 수 있는 C#의 문자열 서식 관련 기능들을 공부해봤다. 1. string.Format( ) Format( ) 메소드의 매개변수 형식은 다음과 같다. {첨자, 맞춤:서식 문자열} 첨자는 문자열의 틀을 말한다. 사용 예시를 보면 다음과 같다. *WriteLine 함수도 string.format()을 기반으로 한다고 한다.) Co..
2022.03.09 -
[C#] Nullable
C#에서 값 형식(value type)에 해당하는 자료형들이 있다. (byte, int, float, ...) 이런 값 형식의 변수들은 초기화해서 사용하지 않으면 C# 컴파일러는 컴파일조차 해주지 않는다. 하지만, 개발을 하다 보면 이런 값 형식의 데이터에도 어떠한 값도 가지지 않게 하고 싶은 경우가 종종 있다. 참조 형식(reference type)은 null을 줄 수 있지만, 값 형식에는 null을 줄 수가 없다. 그래서, C#에서는 이런 값 형식 자료형 변수에도 null 값을 할당할 수 있도록 Nullable 형식이란 걸 지원한다. Nullable 값 형식에 한해서 사용할 수 있으며, 선언하는 방식은 다음과 같다. 데이터타입? 변수이름; 사용 예시를 보면 다음과 같이 쓸 수 있다. // int da..
2022.03.09 -
[C#] CLR(Common Language Runtime)과 네이티브 코드(Native Code)
*이 글은 책을 바탕으로 공부한 글입니다. 네이티브 코드(Native Code)와 C#의 CLR 네이티브 코드는 CPU와 운영체제가 직접적으로 실행할 수 있는 코드들을 말한다. 보통 우리가 알고 있는 프로그래밍 언어들은 컴파일(Compile) 과정을 거쳐, 운영체제가 실행할 수 있는 기계어로 번역된다. 하지만, 이런 방식은 OS 및 HW 환경이 달라지면 실행이 불가능하다. 네이티브 코드의 단점을 해결하기 위해, 자바에서는 JVM, C#에서는 CLR과 같은 프로그램을 도입했다. C# 글이니 CLR에 대해서만 알아보자면, CLR은 .NET 라이브러리와 함께 OS 위에 설치된다. 그리고 C# 컴파일러는 C# 소스 코드를 컴파일하여, IL(Intermediate Language)라는 중간 언어로 작성된 실행 파..
2022.03.09