반응형

언어 자료구조 알고리즘 1251

10.Casting

Casting 다루는 내용 - 사용자 정의 변환 (implicit operator, explicit operator) - type casting(형식 변환)을 위해 제공되는 Help Class들 C#도 C나 C++처럼 컴파일 타임에 정적으로 형식이 지정이 된다. 즉, 변수 선언시 형식이 지정되며 다른 형식의 값을 저장하기 위해서는 type casting(형식변환)이 필요하다. 형식 변환에는 암시적 변환, 명시적 변환, 사용자 정의 변환, Help Class를 통한 변환으로 구분할 수가 있다. 먼저, 암시적 변환이 지원되는 경우는 변환과정을 통해 데이터의 손실이 되지 않는 형식간 변환에 제공이 되고 있다. 예를 들어 작은 정수 형식에서 큰 정수형으로의 변환 및 파생 클래스에서 기본 클래스로의 변환등이 있을..

9.String

String 다루는 내용 - String의 멤버 - StringBuilder String은 Char개체의 읽기 전용 컬렉션으로 저장이 되며 각 컬렉션은 UTF-16으로 인코딩된 유니코드 문자 하나이다. String클래스는 C및 C++과 달리 안전한 작성 및 조작, 비교를 할 수 있다는 특징이 있다. 또한 string이라는 별칭으로도 사용이 가능하며 개별 유니코드 포인터에 액세스를 하기 위해 StringInfo개체를 사용할 수도 있다. 고려해야 할 점은 String 개체는 읽기 전용 컬렉션이기 때문에 수정이 불가능하며 수정하는 것처럼 보이는 메소드를 포함을 하고 있어서 해당 메소드 수행 후 수정된 String개체를 반환하고 있다. 즉, 반환되는 것은 새로운 String개체이고 기존 개체는 GC에 의해 수집..

8. Object

Object 다루는 내용 - Object - Object에서 파생된 클래스에서 재정의할 수 있는 메소드 C#의 object형식은 .NET Framework의 Object형식에 대한 별칭입니다. Object는 모든 형식 계층 구조에서 루트여서 모든 형식은 Object로부터 암시적으로 파생이 된다. Object는 다음과 같은 메소드들을 제공을 하고 있으며 모든 형식은 암식적으로 파생된 형식들이므로 이들을 사용할 수 있다. 또한 파생된 클래스에서는 virtual 메소드를 override할 수 있다. [SerializableAttribute] //클래스가 serialize될 수 있음을 표시 [ComVisibleAttribute(true)] //COM에 대한 어셈블리 내의 관리되는 형식의 액세스 가능성을 제어 [..

7. 배열

배열 다루는 내용 - 1차원 배열 - 다차원 배열 - Jagged 배열 - foreach 및 Length멤버 이번 항목은 Look & Feel로만 구성되어 있으니 잘 보시고 스텁 형태로 작성하여 확인해 보시길 바란다. 1차원 배열 27번 라인처럼 초기화에서 되는 구문도 35번 라인처럼 대입 연산구문에서는 허용치 않는 표현은 주의하자. C#에서는 할당된 배열 공간을 벗어날 경우 예외가 발생함으로써 개발 시에 잘못된 부분을 수정할 수 있게 해준다. 다차원 배열 48번 라인처럼 초기화 구문에 사용되는 표현이 55번 라인과 같이 대입 연산구문에서는 허용하지 않는 것들은 주의하자. Jagged 배열 C#에서는 다음과 같은 Jagged(지그재그) 배열을 제공하고 있다. 배열 형식은 Array 추상 형식에서 파생된 ..

6. valuetype 기본 형식

valuetype 기본 형식 형식명 범위 변환 가능 형식 bool true,false 없음 bool? true,false,null 없음 char U+0000 ~ U+ffff(유니코드) ushort, int, uint, long, ulong, float, double 또는 decimal sbyte -128 ~ 127 short, int, long, float, double, decimal byte 0 ~ 255 short, ushort, int, uint, long, ulong, float, double, decimal char U+0000 ~ U+ffff int, long, float, double, decimal short -32,768 ~ 32,767 int, long, float, double, d..

5. .NET Framework

.NET Framework 다루는 내용 - .NET Framework 개요 - CLR(Common Laguage Runtime, 공용 언어 런타임) - CTS(Common Type System, 공용 언어 시스템) _ CLS(Common Language Specification, 공용 언어 사양) C# 프로그램은 .NET Framework기반에서 실행이 됩니다. C#컴파일러는 .NET 어셈블리(.NET 가상머신에서 동작 가능한 바이너리)를 생성하고 CLR이라는 가상 실행 시스템이 .NET Framework의 일부분인 통합된 클래스 라이브러리와 결합하여 네이티브 기계어(실제 시스템에 맞는 기계어)를 생성을 해 줍니다. 그리고, 통합된 클래스 라이브러리는 다양한 언어로 제작된 프로그램에서 사용할 수 있는데 ..

4. const 와 readonly

const 와 readonly 다루는 내용 -const -readonly -static 생성자 먼저 데모를 작성하기 위해 데모 클래스를 하나 만들어 보자. 테스트 클래스를 하나 추가한다. const 키워드 const 키워드는 System네임스페이스에 있는 기본 형식에 대해서만 사용할 수 있는 키워드 입니다. 다른 형식과 같이 사용할 때는 null로 설정해야 하기 때문에 무용지물이다. System 네임 스페이스 내의 기본 형식 C# 형식 .NET Framework 형식 bool System.Boolean byte System.Byte sbyte System.SByte char System.Char decimal System.Decimal double System.Double float System.Sing..

3. 소멸자

소멸자 다루는 내용 - 소멸자 - unsafe한 코드 사용(Win32 API, C++기반의 dll, COM) 생성자가 인스턴스를 생성할 때 수행할 구문을 위한 메소드인 것처럼 소멸자는 인스턴스가 소멸될 때 수행되는 구문을 위한 메소드이다. 인스턴스를 생성하는 구문은 new연산자를 통해 C# 사용자에 의해 구동될 수 있지만 인스턴스를 소멸하는 것은 .NET garbage컬렉션에 의해 구동된다. 그럼에도 불구하고 C#클래스에 소멸자를 정의할 수 있다. 그렇다면 소멸자는 어떠한 경우에 필요한 것일까? C#에서는 관리되는 코드와 비관리 코드 모두 사용할 수 있다. 비 관리 코드는 COM개체나 Win32 API를 사용하기 위해서 제공한다고 볼 수 있는데 이들을 사용하는 부분에 대해서는 인스턴스의 생성과 소멸은 모..

2. 생성자

생성자 다루는 내용 - 정적 생성자 - 디폴트 생성자 - this를 이용 - base를 이용 이번에는 다음과 같은 클래스 다이어그램 구조를 갖는 응용을 모델로 생성자에 대해서 살펴보기로 하자. 설명도 생성자에 맞추어 설명을 할 것이지만 앞으로 어떻게 전개해 나갈지는 여러분이 상상해 나가며 비교했으면 좋겠다. 프로젝트의 소스 파일 구성은 다음과 같다. 솔루션 파일 구성 BasicInfo 사람이 갖는 기본 정보(구조체) EhLib Eh 라이브러리 LectureRoom 강의실 Man 사람 Program 진입점 클래스 Student 학생 SunBee 실제 응용 클래스 Basicinfo 구조체의 생성자에 대해서 살펴보자. Look & Feel & Think 구조체는 매개 변수가 없는 명시적 생성자를 포함할 수 없..

1.Welcome! Here is ehclub.net

Welcome! Here is ehclub.net MSDN C#프로그래밍 가이드 바로가기 다루는 내용 - C#으로 콘솔 응용 만들기 - csc 컴파일러 따라하기 1. 먼저 다음과 같은 코드를 메모장으로 작성하자. welcomeapp.cs namespace EhCSharp { class WelcomeApp { static void Main() { System.Console.WriteLine("Welcome! Here is ehclub.net"); } } } 2. Visual Studio 2008 명령 프로프트를 실행하자. 3. 저장된 파일 위치로 가서 csc 파일명으로 컴파일하여 실행명령을 내려보자. 설명 1. namespace EhCSharp 네임스페이스는 이름 충돌을 막기 위한 것으로 서로 다른 네임스..

반응형