본문 바로가기

Programming Language/C#27

[C#] 인덱서 인덱서 - 인덱스를 이용해서 객체 내의 데이터에 접근하게 해주는 프로퍼티 선언 class 클래스이름 { 한정자 인덱서형식 this[형식 index식별자] { get { // index 를 이용하여 내부 데이터 변환 } set { // index 를 이용하여 내부 데이터 저장 } } } 위 인덱서 문법을 보면, 인덱서는 프로퍼티처럼 식별자를 따로 가지고 있지 않다. 프로퍼티가 이름을 통해 객체 내의 데이터에 접근하게 해준다면, 인덱서는 인덱스를 통해 객체 내의 데이터에 접근하게 해준다. 인덱서의 선언 class MyList { private int[] array; public MyList() { array = new int[3]; } public int this[int index] // 인덱서 { get .. 2019. 11. 3.
[C#] 컬렉션 (Collection) 컬렉션 - 같은 성격을 띠는 데이터의 모음을 담는 자료 구조. Collections ArrayList Queue Stack Hashtable ArrayList ArrayList는 배열과 비슷한 컬렉션이다. 컬렉션의 요소에 접근할 때는 [] 연산자를 이용하고, 특정 위치에 있는 요소에 데이터를 임의로 할당할 수 도 있다. 한편, 배열과는 달리 컬렉션을 생성할 때 용량을 미리 지정할 필요가 없이 필요에 따라 자동으로 그 용량이 늘어나거나 줄어든다. 가장 중요한 메서드는 Add(), RemoveAt(), Insert() 세 가지이다. Add() 이 메소드는 컬렉션의 가장 마지막에 있는 요소 뒤에 새 요소를 추가. RemoveAt() 특정 인덱스에 있는 요소를 제거. Insert() 원하는 위치에 새 요소를 삽.. 2019. 10. 31.
[C#] 추상 프로퍼티 추상 프로퍼티 - 추상 클래스는 클래스처럼 구현된 프로퍼티를 가질 수도 있는 한편, 인터페이스처럼 구현되지 않은 프로퍼티도 가질 수 있다. 추상 프로퍼티 역시 인터페이스의 프로퍼티와 다를 것 없다. 왜냐하면 파생 클래스가 해당 프로퍼티를 구현하도록 강제하는 것뿐이다. 선언 인터페이스처럼 구현을 비워놓은 것만으로는 추상 프로퍼티를 만들 수 없다. 왜냐하면 C# 컴파일러가 자동 구현 프로퍼티로 간주하고 구현을 자동으로 채워놓기 때문이다. 추상 프로퍼티는 abstract 한정자를 이용해서 선언한다. 추상 프로퍼티를 갖는 추상 클래스 상속 추상 클래스는 구현을 가진 프로퍼티와 구현이 없는 추상 프로퍼티 모두를 가질 수 있다. 또한 파생 클래스는 부모 추상 클래스의 모든 추상 메서드뿐 아니라 추상 프로퍼티를 재정.. 2019. 10. 15.
[C#] System.Array System.Array - 배열을 만들고, 조작하고, 검색 및 정렬하여 공용 언어 런타임에서 모든 배열의 기본 클래스 역할을 수행하도록 하는 메서드를 제공해주는 배열의 기반 클래스. 예제 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; using static System.Console; using System.IO; namespace Practice2 { class MainApp { static void Main(string[] args) { int[] ar.. 2019. 10. 2.
[C#] 인터페이스의 프로퍼티 인터페이스의 프로퍼티 - 인터페이스는 메서드뿐만 아니라 프로퍼티와 인덱서도 가질 수 있다. 프로퍼티나 인덱서를 가진 인터페이스를 상속하는 클래스가 반드시 해당 프로퍼티와 인덱서를 구현해야 하는 것은 당연하며, 인터페이스에 들어가는 프로퍼티는 구현을 갖지 않는다. 선언 위 선언 모습을 보면 알 수 있듯이 인터페이스의 프로퍼티 선언이 클래스의 자동 구현 프로퍼티 선언과 그 모습이 동일하다. 프로퍼티를 가진 인터페이스의 상속 예제 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56.. 2019. 10. 2.
[C#] 무명 형식 무명 형식 - 이름이 없는 형식이다. 무명 형식은 형식의 선언과 동시에 인스턴스를 할당한다. 인스턴스를 만들고 다시는 사용하지 않을 때 요긴하다. 선언 주의점 무명 형식의 프로퍼티에 할당된 값은 변경이 불가능하다. 한번 무명 형식의 인스턴스가 만들어지고 난 다음에는 읽기만 할 수 있다. 예제 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; using static System.Console; using System.IO; .. 2019. 10. 2.