본문 바로가기

Programming Language41

[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.
[C#] 프로퍼티 프로퍼티 - '속성'이라고 의미를 가지고 있는 프로퍼티는 전용 필드의 값을 읽거나 쓸 수 있는 유연한 메커니즘이다. 데이터의 쉽게 접근할 수 있으며, 메서드의 안정성과 유연성 수준을 올려주는데 도움이 된다. 프로퍼티 더 알아보기 클래스를 작성하다 보면 필드를 public과 private 중에 무엇으로 선언할지 고민하는 경우가 있다. 은닉성을 지키자니 번거롭고, 모든 public으로 선언하자니 은닉성이 신경 쓰이는 상황에 놓인다. 하지만 프로퍼티를 이용한다면 은닉성과 편의성, 둘 다 잡을 수 있다. 하지만 필드와 달리 프로퍼티는 변수로 분류되지 않기 때문에 ref 또는 out 매개변수로 전달할 수 없다. 선언 프로퍼티 선언 문법에서 get과 set을 일컬어 '접근자'라고 한다. get 접근자는 필드로부터 .. 2019. 9. 28.
[C#] 추상 클래스 추상 클래스 - 인터페이스와 달리 구현을 가질 수 있으나, 클래스와는 달리 인스턴스를 가질 수 없는 클래스. 선언 추상 클래스는 클래스에 더 가깝다(접근성). 인터페이스에서는 모든 메서드가 public으로 선언되는 반면, 클래스는 한정자를 명시하지 않으면 모든 메서드가 private로 선언된다. 추상 클래스는 인스턴스를 만들 수 없다는 점 외에도 클래스와 다른 점은 추상 메서드를 가질 수 있다는 것이다. 추상 메서드 - 추상 클래스가 인터페이스의 역할도 할 수 있게 해주는 장치. 구현을 갖지는 못하지만 파생 클래스에서 반드시 구현하도록 강제하기 때문이다. 다시 말해, 추상 클래스를 상속하는 클래스들이 반드시 이 메서드를 갖고 있을 거라는 "약속"인 것이다. 추상 클래스의 접근성 추상 클래스나 클래스는 그.. 2019. 9. 12.