반응형

소스 코드 353

9. 접근성 평가 도구 만들기 - 6. EHProcess 클래스

9.2.4 EHProcess 클래스 EHProcess 클래스는 단순히 Process 클래스를 래핑하여 기본 정보를 속성으로 다시 제공하는 클래스입니다. 평가 프로젝트를 생성하는 단계에서 프로세스 항목을 리스트 박스에 추가할 때 프로세스 이름과 메인 창의 타이틀 정보의 조합을 출력할 수 있게 하기 위해 정의한 클래스이며 이 외에 다른 역할은 수행하지 않습니다. using System;using System.Diagnostics; namespace 예제_9_접근성_평가_도우미{ public class EHProcess { public Process Process { get; private set; } public string ProcessName { get { return Process.ProcessName..

9. 접근성 평가 도구 만들기 - 3. 속성과 컨트롤 패턴 열거형 정의하기

9. 2 접근성 평가 도우미 사용자 정의 형식 구현 접근성 평가 도우미를 구현하는 것은 사용자 정의 형식 구현을 먼저 설명한 이후에 사용자 정의 컨트롤, 폼 순으로 설명할게요. 여러분께서 순차적으로 구현하는 것은 폼부터 설명하는 것이 맞겠지만 분석하는 것은 내부부터 구현하는 것이 나을 것이라 생각합니다. 9.2.1 속성과 컨트롤 패턴 열거형 정의하기 접근성 요소의 기본 속성과 컨트롤 패턴은 다음처럼 열거형을 정의합시다. namespace 예제_9_접근성_평가_도우미{ public enum ENUM_UIProperty { NO_UIPROPERY=-1, EVALUATEVALUE, ACCELERATORKEY, ACCESSKEY, AUTOMATIONID, BOUNDINGRECTANGLE,CLASSNAME,CON..

[구글 Go 하자] 28. 구글 Go 언어 선택문은 switch

28. 구글 Go 언어 선택문은 switch 안녕하세요. 언제나 휴일입니다.이번에는 변수 값에 따라 특정 코드를 선택해서 수행하는 swith 선택문을 알아볼게요.switch 선택문은 switch 키워드 뒤에 태그나 표현 식을 사용하거나 case에 특정 표현을 사용하는 세 가지 방법으로 생각할 수 있어요.먼저 switch 키워드 뒤에 태그를 사용하는 방법을 살펴볼게요. switch tag{case 상수1: 수행 구문case 상수2: 수행 구문default: 수행 구문} switch 뒤에 태그 표현의 값이 특정 case에 표현한 상수 값이면 해당 수행 구문을 동작하고 그렇지 않을 때는 default의 수행 구문을 동작합니다. 다음은 정수를 입력받아서 0에서 4사이의 정수를 입력하면 한글로 해당 숫자를 출력하..

[구글 Go 하자] 26. 엄격한 폼을 요구하는 if 조건문

26. 엄격한 폼을 요구하는 if 조건문 안녕하세요. 언제나 휴일입니다.이전 게시글에서는 콘솔에서의 입출력을 다뤘습니다. 이번 게시글부터 제어문을 다룰 거예요. Go언어의 제어문에는 조건문, 선택문, 반복문, 분기문이 있어요. 이번 게시글에서는 조건문을 다룹니다.Go언어에서는 조건문을 작성할 때 괄호를 생략하는 것을 허용하지 않고 괄호를 붙는 위치와 else가 있어야 하는 위치가 정해져 있습니다. C언어에서 개발자에 따라 다양한 코딩 습관에 따라 괄호가 붙는 위치나 else를 작성하는 위치가 다르게 작성할 수 있었던 것을 엄격하게 한정하고 있습니다.이처럼 엄격하게 정한 것은 개발자들의 코딩 습관에 따라 다르게 작성하여 가독할 때 서로 불편할 수 있는 여지를 미리 차단하는 효과를 줍니다. 먼저 if 조건문..

[C#] 10. .NET 어셈블리 - 어셈블리 만들기

10. .NET 어셈블리 10.2 어셈블리 만들기 여기서는 .NET 어셈블리를 만들어 보기로 합시다. .NET 어셈블리 중에 실행 파일을 만드는 것은 이미 알고 있으므로 라이브러리를 만드는 것을 하겠습니다. 그리고 다중 파일 어셈블리의 부속이 되는 모듈도 만들어 보기로 합시다. 10.2.1 라이브러리 제작 .NET에서 라이브러리는 쉽게 제작할 수 있습니다. 코드를 작성하는 부분에서 다른 어셈블리에서 사용할 수 있는 형식을 정의할 때 public 키워드를 명시하기만 하면 됩니다. 멤버도 마찬가지로 다른 어셈블리에서 접근을 허용하게 하려면 접근 지정을 public으로 하면 됩니다. 즉, 다른 어셈블리에 정의된 형식이나 멤버 중에 사용할 수 있는 형식과 멤버는 접근 지정이 public으로 되어 있다는 것 말고..

[C#] 8.2 컬렉션 - IList 인터페이스

8.2 컬렉션 8.2.3 IList인터페이스 IList 인터페이스는 배열과 ArrayList의 기반 인터페이스입니다. IList 인터페이스에는 인덱서로 요소를 참조할 수 있는 멤버들을 약속하고 있습니다. 그리고 IList는 ICollection 인터페이스 기반의 형식이므로 앞에서 살펴본 ICollection에 약속한 멤버들에 대한 약속을 포함하게 됩니다. 여기에서는 새롭게 추가된 약속들에 대해서만 다룰게요. ICollection 인터페이스에서는 요소를 추가할 때 사용하기 위해 Add 메서드와 Insert 메서드를 제공하고 있습니다. Add 메서드는 차례대로 보관할 때 사용하고 Insert 메서드는 원하는 인덱스 위치에 보관할 때 사용합니다. int Add(object value); //요소를 추가하는 메..

[C#] 8.2 컬렉션 - ICollection 인터페이스

8.2 컬렉션 8.2.2 ICollection 인터페이스 ICollection 인터페이스는 제네릭이 아닌 모든 컬렉션의 기반 인터페이스입니다. 제네릭 컬렉션은 IColleciont 인터페이스를 기반으로 정의되어 있는데 여기서는 ICollection 인터페이스에 대해 살펴볼게요. ICollection은 C#에서 제공하는 제네릭이 아닌 모든 컬렉션의 기반 인터페이스로 컬렉션에 보관된 요소의 개수와 다른 컬렉션에 보관된 요소를 복사하는 메서드, 열거자, 동기화 메서드가 약속되어 있습니다. 물론, 열거자는 ICollection이 IEnumerable을 기반으로 정의되어 있기 때문입니다. ▶ ICollection 인터페이스의 약속된 멤버 class Program { static void Main(string[] ..

[C#] 8.2 컬렉션 - IEnumerable, IEnumerator 인터페이스

8.2 컬렉션 8.2.1 IEnumerable, IEnumerator 인터페이스 ICollection 인터페이스는 C#에서 제공하는 다양한 컬렉션 클랙스들의 기반이 되는 인터페이스입니다. 그리고 ICollection 인터페이스는 IEnumerable 인터페이스를 기반으로 확장된 인터페이스입니다. C#에서 제공되는 컬렉션 개체가 foreach 구문을 통해 보관된 각 요소에 공통적인 작업을 수행할 수 있는 것도 내부적으로 IEnumerable 인터페이스를 기반으로 정의되었기 때문입니다. IEnuerable 인터페이스에는 foreach 구문에서 필요한 멤버들을 약속한 IEnumerator 개체를 반환하는 GetEnumerator 메서드를 제공하고 있습니다. ▶ IEnumerable, IEnumerator에 약..

[C#] 8. 인터페이스와 컬렉션 - 인터페이스

8. 인터페이스와 컬렉션 C#에서는 인터페이스를 통해 기능 구현에 대한 약속을 추상화할 수 있습니다. 인터페이스는 묵시적으로 추상 형식이며 클래스나 구조체에서 이를 구현 약속(상속)하면 약속된 기능들을 구현해야 합니다. 이러한 인터페이스를 이용하면 같은 인터페이스 기반의 여러 개체를 인터페이스 형식 변수로 사용하는 다형성의 장점을 누릴 수 있습니다. 또한, 이를 프로그래밍에 사용하면 같은 인터페이스를 구현 약속된 개체의 사용 방법을 별도로 익힐 필요가 없게 됩니다. 그리고 C#에서는 데이터나 개체를 보관할 수 있는 여러 종류의 컬렉션을 제공하고 있으며 필수적인 인터페이스 기반으로 정의되어 있어서 효과적으로 프로그래밍할 수 있습니다. 8.1 인터페이스 인터페이스는 기능 구현에 대한 약속입니다. 인터페이스의..

[C#] 7.3 설계한 내용 프로젝트에 옮기기 - 판서 강의

7.3 설계한 내용 프로젝트에 옮기기 판서 강의 [그림] 판서 강의 시퀀스 다이어그램 이번에는 초점이 강의실로 이동되어 판서 강의하는 부분을 시퀀스 다이어그램을 보며 필요한 멤버를 추가해 봅시다. 캠퍼스 생활에서는 강의실에 판서 강의하라는 것을 DoIt 메서드에 해당 행위를 인자로 전달하게 되어 있네요. 이 부분은 기능 확장을 쉽게 하기 위해 각 장소에 따라 수행할 수 있는 일의 종류를 정의하고 입력 인자로 해당 일의 종류를 전달받아 수행하게 한 것입니다. 따라서 다른 시퀀스 다이어그램까지 살펴보면 DoIt 메서드는 각 장소의 기반 클래스인 Place에 추상 메서드로 약속하고 각 장소에서는 재정의하면 된다는 것을 생각할 수 있을 것입니다. class LectureRoom:Place { internal L..

반응형