.NET/C#
[C#] 예외처리
1. 예외처리 위의 Parse()메서드를 설명할 때 이미 Runtime에러가 발생하는 경우를 봤었는데 이런 경우를 '예외가 발생했다.'라고도 표현합니다. 예외가 발생하면 try ~ catch를 사용하는 경우 에러를 제어할 수 있는 여지가 주어지지만 그렇지 않다면 stack trace를 포함한 예외 관련 메시지를 출력하고 Application의 동작은 중지됩니다. try { string s = "abc"; int i = int.Parse(s); } catch { } 예제에서처럼 try ~ catch는 예외가 발생할 수 있는 코드 전체를 try { } 안에서 실행하도록 할 수 있으며 예외가 발생되는 경우만 catch { } 내부로 처리가 이루어지게 됩니다. 위에서 'Unhandled exception'가 발..
[C#] 형변환
프로그래밍에서 특정 형식의 데이터를 다른 형식으로 형 변환하는 경우는 흔한 일중 하나입니다. 예를 들어 사용자로부터 입력받은 값은 string형식인데 해당 값을 사칙연산으로 계산하기 위해 int형식으로 바꾸는 경우입니다. ※ 형 변환을 언급할 때 Casting과 Convert라는 말이 자주 사용되는데 이 둘은 같은 의미를 가집니다. 형 변환이 크게 명시적인 형태와 명시적인 형태 이 2가지로 이루어집니다. 암시적인 형 변환은 대부분 자동적으로 변환되는 것으로 기존에 변수가 가진 값의 손실이 없이 완벽하게 변환되는 경우로 안전하게 처리될 수 있습니다. 하지만 명시적인 형변환은 직접 형 변환을 코드로 구현해 처리하는 것으로 이런 경우는 상황에 따라 기존 값의 일부 손실이 있을 수 있습니다. ● 숫자 형식에 대..
[C#] 흐름제어
1. 분기문 (selection statements) ● if if는 분기문이라 하여 말 그대로 Boolean 식을 평가한 후 처리를 분기하는 제어문입니다. if (Boolean식) { } else if (Boolean식) { } else { } if의 Boolean식이 True라면 중괄호({})안의 코드를 실행하게 됩니다. else if나 else는 선택적이며 if의 결과가 false인 경우 실행될 수 있습니다. 이때 else if문은 다른 if문에서 의존하지 않는 새로운 Boolean 식을 평가할 수 있습니다. 또한 if문은 필요하다면 여러 개로 중첩될 수 있습니다. if문을 비롯한 다른 제어문이나 반복문에도 해당될 수 있는 내용으로 실행되는 구문의 영역이 한 줄에 불과하다면 중괄호({})는 생략될 ..
[C#] 연산자
● 산술 연산자 연산자는 변수나 실제값에 해당하는 피연산자를 더하거나 곱하는 등의 연산을 수행하며 일반적으로 다른 변수에 할당 가능한 또 다른 값을 반환합니다. 연산자 중 이항 연산자는 연산에 필요한 피연산자가 최소 2개 이상은 되어야 하는 연산자임을 의미하며 int i = 10; int j = 20; int result = i + j; 가(+), 감(-), 승(*), 제(/) 연산을 위해서 가장 많이 사용되는 연산자입니다. 참고로 % 는 나머지를 의미합니다. int i = 10; int j = 20; int result = i % j; 단항 연산자는 단 하나의 피연산자를 필요로 합니다. int i = 10; int result = ++i; 단항 연산자는 대표적으로 변수의 값을 1만큼 증가시키는 ++와 ..
[C#] C# 개요 - 3. 기타 Console Application 관련
4. Console Application 추가사항 Console형식의 App은 화려하고 편리한 GUI를 지원하지는 않지만 간단하게 특정 기능을 테스트하고 코드를 학습하기 위한 좋은 선택이 될 수 있으며 이미 이전의 예제에서 Console프로젝트를 생성해 사용해 왔습니다. 하지만 때로는 Console상에서 어떤 결과를 출력할 때 다소 불편한 상황이 전개될 수 있는데 이를 위해 몇 가지 보완할 수 있는 방법을 알아보고자 합니다. ● 번호가 매겨진 선택적 매개변수의 사용 (numbered positional arguments) 'numbered positional arguments'는 Write()나 WriteLine() 메서드를 통해 문자열을 출력하는 경우 특정 포맷으로 형식화할 수 있는 방법 중에 하나가 ..
[C#] C# 개요 - 2. 변수
3. 변수 Application은 기본적으로 필요한 Data를 Memory에서 다루기 위해 '변수'를 사용합니다. 데이터는 파일이나 DB혹은 외부의 사용자 입력 등 다양한 곳에서 들어올 수 있지만 이렇게 입력된 데이터를 처리하기 위해서는 어딘가에 해당 데이터를 저장해야 하고 이러한 수단에서 '변수'를 활용하는 것입니다. 다만 '변수'는 Application이 종료되면 Memory에서 제거되므로 이를 지속적으로 저장하기 위해서 파일이나 DB 등을 별도로 이용할 수 있습니다. '변수'는 사용하고자 하는 type에 따라 Memory를 차지하는 크기가 달라집니다. 가능한 한 작은 type을 사용하면 그만큼 적은 Memory를 할당받게 되지만 그렇다고 해서 작은 크기의 '변수'가 그렇지 않은 '변수'보다 항상 처..
[C#] C# 개요 - 1. C#의 특징및 개요
1. C#언어의 버전별 특징 ● 1.0 객체지향 언어에 대한 모든 특징을 담고 2002년에 릴리즈 되었습니다. ● 2.0 2005년에 릴리즈 되었으며 generic을 통한 강력한 데이터 타입이 사용되기 시작했습니다. 이는 코드에 대한 성능의 증가와 함께 타입에러를 감소시키는 역활을 하였습니다. 또한 null 가능한 값형식이 추가되었습니다. ● 3.0 2007년에 릴리즈 되었으며 익명타입과 람다식 그리고 LINQ(Language INtegrated Queries)사용을 통한 서술적 코딩이 가능해 졌습니다. 또한 타입추론을 통한 암시적 지역변수 사용이 가능해졌습니다. ● 4.0 2010년에 릴리즈 되었으며 F#, Python과 같은 동적언어와의 상호운용성이 향상되었습니다. 이로인해 동적타입이 사용되기 시작했..
[C#] C#과 .NET6 시작하기 - 3. Console App 만들어 보기
3. Console App 만들어 보기 (Visual Studio 2022) 지금부터 만들어볼 환경은 Windows상에서 Visual Studio 2022를 사용하는 것으로 간단한 Console App을 만드는 과정을 담고 있습니다. Visual Studio 2022는 설루션(Solution)이라고 하는 다수의 Project를 관리할 수 있는 개념을 가지고 있으므로 Project를 생성하면 자동으로 하나의 설루션 안에 Project를 담아두는 구조로 생성될 것입니다. Visual Studio 2022를 실행하여 처음 나오는 Create a new project화면에서 C#언어의 Console App template을 선택합니다. Project설정 화면에서 Project name을 설정합니다. 프로젝트가 ..