ASP/ADO.Net C# 실무 과정 자료]  String을 배열처럼 사용하기






ASP/ADO.Net C# 실무 과정 자료]  String을 배열처럼 사용하기

실무개발자를위한 실무교육 전문교육센터학원

www.oraclejava.co.kr에 오시면 보다 다양한 강좌를 보실 수 있습니다.


String을 배열처럼 사용하기


String a = new String(“abcde”);


■ 이 String에서 첫글자 a를 b로 바꾸고 싶을 때, 두 가지 방법이 있다.

a[0] = “b”;

a.AddChar(0, “b”);


■ 위의 방법이 보다 편리하고 직관적이다.


■ C#에서 a[0] 식의 사용이 가능한 것은 인덱서를 정의했기 때문이다.



ASP/ADO.Net C# 실무 과정 자료] 인덱서 (Indexer)






ASP/ADO.Net C# 실무 과정 자료] 인덱서 (Indexer)

실무개발자를위한 실무교육 전문교육센터학원

www.oraclejava.co.kr에 오시면 보다 다양한 강좌를 보실 수 있습니다.


인덱서 (Indexer)


■ 인덱서

-객체가 배열인 것 처럼 사용할 수 있게 해 주는 멤버형식이다.


-스마트 어레이(Smart Array)라고도 불린다.


■System.String 클래스

-String의 첫글자를 C에서 처럼 string[0] 하는 식으로 표현하기도 한다. 실제로 string이 객체 임을 생각하면 이것은 이해하기 어렵다.


- 따라서 String 내부에 배열접근을 허용해 주는 메소드 비슷한 것이 존재한다는 것이다.

ASP/ADO.Net C# 실무 과정 자료] 여러가지 프로퍼티






ASP/ADO.Net C# 실무 과정 자료] 여러가지 프로퍼티


실무개발자를위한 실무교육 전문교육센터학원

www.oraclejava.co.kr에 오시면 보다 다양한 강좌를 보실 수 있습니다.


여러가지 프로퍼티


설명 )

■ LastName의 경우 읽기 쓰기를 모두 허용한다. 이런 경우가 전형적인 프로퍼티라 할 수 있다.


■ BirthYear는 쓰기만을 허용한다. 이때 1950이후 이며 2050년 이전인 생년만을 valid한 값이라고 인정한다. 입력값의 검증을 이용한 프로퍼티이다.


■ Age는 계산된 프로퍼티이다. a.Age를 get하는 경우, 생년을 사용해서 현재의 나이를 계산해 return한다. Age에 대한 쓰기를 할 수도 있는데, 이때는 age가 아닌 birthYear에 대한 조작을 하게 한다.



ASP/ADO.Net C# 실무 과정 자료] 프로퍼티의 이용






ASP/ADO.Net C# 실무 과정 자료] 프로퍼티의 이용

실무개발자를위한 실무교육 전문교육센터학원

www.oraclejava.co.kr에 오시면 보다 다양한 강좌를 보실 수 있습니다.


프로퍼티의 이용


■ 드러나야 하는 속성을 프로퍼티로 사용한다.


■ 읽기 전용 또는 쓰기 전용 멤버 변수가 필요한 경우, 각각 get/set 메소드 만을 사용하여 구현할 수 있다.


■ 값 쓰기에서, 그 값의 검증을 해야 하는 경우가 있다. 이때, set 메소드에서 validating 루틴을 만들어 둔다.

예) 수도계량기의값 = -100 으로 set


■ 계산된 속성, 즉 멤버변수에 직접 들어있지 않은 속성들을 표현할 때, 프로퍼티를 사용한다.

예)나이속성은 (현재날짜-생일)의 계산값



ASP/ADO.Net C# 실무 과정 자료] 간단한 프로퍼티의 사용 예제






ASP/ADO.Net C# 실무 과정 자료] 간단한 프로퍼티의 사용 예제

실무개발자를위한 실무교육 전문교육센터학원

www.oraclejava.co.kr에 오시면 보다 다양한 강좌를 보실 수 있습니다.


간단한 프로퍼티의 사용 예제



설명)

■ 앞 장의 두 예는 거의 같은 역할을 한다.

- 프로퍼티와 멤버 변수의 이름이 달라야 한다. 그래서 멤버 변수는 소문자, 프로퍼티는 대문자로 시작한다.


■ 키워드 get/set

- get{} 은 해당 클래스의 값을 읽을 때 수행되는 메소드 이다. return이 필요하다. int a=MyInt.Number를 사용하면 호출된다.


- set{} 은 해당 클래스에 값을 쓸 때 수행되는 메소드 이다. 따라서 외부로 부터의 파라미터가 필요한데, value라는 값으로 대신한다. MyInt.Number=1 이라고 써주면 set 메소드가 수행되며 value에 1이 들어간다.



ASP/ADO.Net C# 실무 과정 자료] 프로퍼티 (Property)






ASP/ADO.Net C# 실무 과정 자료] 프로퍼티 (Property)

실무개발자를위한 실무교육 전문교육센터학원

www.oraclejava.co.kr에 오시면 보다 다양한 강좌를 보실 수 있습니다.


프로퍼티 (Property)


■ 프로퍼티란?

- 클래스가 가진 속성(클래스로 부터 얻어내기 get과 클래스에 쓰기 set이 가능하다)


- 클래스의 멤버 변수를 가장한 메소드 이다.


- 필드 처럼 보이기 때문에 스마트필드 라고 불린다.



■왜 사용하는가?

-클래스의 필드 또는 속성을 외부에서 얻고 싶을 경우, 필드를 public으로 선언하는 방법이 있다.

 또는 private로 선언하고 그 필드를 외부에 알리는 메소드를 이용하는 방법도 있다.


-메소드를 이용하는 경우가 안전하지만, 불편하다.


-사용은 멤버 변수와 비슷하고, 구현은 메소드와 비슷한 것이 바로 프로퍼티이다.



ASP/ADO.Net C# 실무 과정 자료] 이벤트 사용하기






ASP/ADO.Net C# 실무 과정 자료] 이벤트 사용하기

실무개발자를위한 실무교육 전문교육센터학원

www.oraclejava.co.kr에 오시면 보다 다양한 강좌를 보실 수 있습니다.


이벤트 사용하기(1)


설명)

■(1) People 객체가 이벤트를 받았을 경우, 어떻게 행동하는 가를 정의해 둔 메소드 이다.


■ (2) 우선 위임을 선언하였고, 그 위임 위에 이벤트를 선언하였다.


■ (3) 은 버튼이 눌러지는 경우를 처리하는 메소드 이다. 이 예에서는 이벤트를 가상으로 만들었다. 즉, Main 메소드에서 (3)을 직접 실행하게 하였다. 분명, 이 메소드 역시 다른 이벤트에 등록 시킬 수 있을 것이다.

■ (4) 버튼의 Click 이벤트에 이벤트 핸들러를 추가하는 구문이다.

■(5) 우선 위임을 선언하였고, 그 위임 위에 이벤트를 선언하였다.

■(3) 은 버튼이 눌러지는 경우를 처리하는 메소드 이다.

■ 이 예에서는 이벤트를 가상으로 만들었다. 즉, Main 메소드에서 (3)을 직접 실행하게 하였다. 

■ (3) 메소드 역시 다른 객체의 어떤 이벤트에 등록 시킬 수 있다.



■ (6) 구문은 복잡해 보이지만 뜯어보면 다음과 같다.
btn.AddOnMyButton( ←      (6.1)
new MyButton.ClickEvent(
(6.2)
 person1.BtnClickHandler));  ← 
(6.3)

■ (6.1) btn 으로의 이벤트 추가 메소드이다. 실제로 (4)번 이 행해진다.

■ (6.2) 위임을 생성한다. (6.3)에서 알 수 있듯이 person1의 BtnClickHandler 메소드를 위임으로 생성한다.

■ 즉,(6)은 btn의 Click이벤트에 person의 핸들러를 추가하는 문장이다.


ASP/ADO.Net C# 실무 과정 자료] 이벤트 사용 형식






ASP/ADO.Net C# 실무 과정 자료] 이벤트 사용 형식

실무개발자를위한 실무교육 전문교육센터학원

www.oraclejava.co.kr에 오시면 보다 다양한 강좌를 보실 수 있습니다.


이벤트 사용 형식


■ 위임 객체와 이벤트를 같이 정의

public delegate void DelegateName();

private event DelegateName EventName;



■ 이벤트 핸들러에 추가

Class1 a=new Class1();

EventName += newDelegateName(a.Method); 



■ 출판자가 이벤트를 전달하는 방법

public void Request(){

if (EventName != null) EventName();

}



+ Recent posts