이벤트는 일어난 사건을 의미한다. 예를 들어, 사용자가 마우스의 왼쪽 버튼을 버튼 위에서 눌렀다가 버튼 위에서 뗄 때, 버튼 클릭 이벤트가 발생하였다고 말한다. 사용자로부터 들어오는 입력뿐만 아니라 특정한 작업이 시작되거나 완료되었을 때도 이벤트가 발생한다. 이벤트가 발생하면 이를 적절하게 처리하기 위한 코드가 실행되는데, 이를 이벤트 처리기 라고 한다.
다양하게 발생하는 이벤트들을 중심으로 프로그래밍하는 방식을 이벤트 기반 프로그래밍 이라고 하는데, ASP.NET 페이지는 이벤트를 기반으로 동작하는 동적 웹 페이지다. 이는 특정 사건이 발생하면 이를 신호로 하여 정해진 작업을 수행하는 방식으로 동작한다는 것을 의미한다.
알아 두어야 할 C#의 기본적인 내용들
대소문자의 구분
C#은 Java, C, C++ 등과 같이 예약어나 변수 이름, 메서드 이름 등에서 대소문자를 구분한다. 비주얼 베이직에서는 조건문의 if가 IF, If, if 모두 동일하게 인식되지만 C#에서는 if만이 선택문의 시작으로 해석된다.
변수 이름이나 메서드 이름이 어떻게 부여되는지는 코드의 가독성과 유지 보수에 영향을 끼친다. 그렇기 때문에 변수나 메서드 이름을 정할 때는 다른 C# 프로그래머나 .NET Framework 클래스 라이브러리에서 사용하는 방법 등을 따르는 것이 좋다.
C#에서 변수 이름 명명 규칙
- 변수 이름은 반드시 문자나 언더바(_)로 시작해야 한다.
- 변수 이름에는 특수 문자를 사용할 수 없다.
- 변수 이름에는 C#의 예약어(키워드)를 사용할 수 없다.
값형과 참조형
C#에서 제공되는 데이터형은 크게 값형(value type)과 참조형(reference type)으로 구분된다. 값형과 참조형 모두 선언과 동시에 스택에 변수를 위한 메모리 공간이 생성된다. 그러나 실제 데이터가 저장되는 공간은 서로 다르다. 값형은 할당된 스택 메모리에 값을 저장하지만 참조형은 힙(heap)에 객체를 위한 메모리 공간을 할당하고, 이 주소에 대한 해시 값(hash value), 즉 참조 값을 스택 메모리에 저장한다.
문자열과 배열
문자의 나열인 문자열형은 값형(value type)처럼 사용되지만, 같은 데이터형의 나열인 배열과 마찬가지로 참조형(reference type)이다.
* 역슬래시 하나(\)는 이스케이프 문자의 시작으로 인식되기 때문에 역슬래시 2개로 표현한다. 그렇기 때문에 경로의 깊이가 깊어질수록 경로를 알아보기가 어렵다. C#에서는 @문자를 사용하여 이스케이프 문자에 대한 처리를 끌 수 있다. @ 문자를 이용하면 익숙한 표기법으로 경로를 나타낼 수 있다.
- string filePath = @"C:\ASPNET_Example\03";
Array 객체가 제공하는 주요 멤버 변수와 메서드
멤버 |
설명 |
Rank |
배열의 차원을 알려주는 정수형의 읽기 전용 속성 int arrayRank = intArray.Rank; |
Length |
배열의 크기를 알려주는 정수형의 읽기 전용 속성 int arraySize = intArray.Length; |
Sort |
배열의 요소 값을 오름차순으로 정렬하는 메서드 Array.Sort |
Clear (배열명, 초기화 시작점, 초기화 개수) |
데이터형에 따라 배열을 초기화 Array.Clear(intArray, 0, intArray.Length); |
Clone() |
이미 존재하는 배열과 똑같은 배열 생성 int[,] cloneArray = (int[,]intArray.Clone(); |
IndexOf(배열명, 찾는 값) |
찾으려는 값의 첫 인덱스 값 반환 int firstIndex = Array.IndexOf(intArray, 3); |
LastIndex(배열명, 찾는 값) |
찾으려는 값의 마지막 인덱스 값 반환 int lastIndex = Array.LastIndex(intArray, 3); |
상수
데이터를 처리하기 위해 값을 잠시 저장하는 공간인 변수와 대비되는 것이 상수다. 상수는 '변하지 않는 문자나 숫자 값'을 의미하는데, C#에서는 const 키워드를 이용하는 방법과 readonly 키워드를 이용하는 방법을 제공한다.
const 상수
const 키워드를 이용하여 상수를 선언하는 방법은 다음과 같다.
const int NumberOfGrade = 4;
const 상수는 선언과 동시에 반드시 초기화되어야 한다. const 상수는 자동으로 내부에서 static 으로 선언되기 때문이다. static 으로 선언한 필드나 메서드는 static 이라는 특수한 영역에 메모리가 생성되어 클래스 전체에 공유되고, 객체를 생성하지 않아도 접근할 수 있다.
readonly 상수
readonly 키워드를 이용하여 상수를 선언하는 방법은 다음과 같다.
readonly int NumberOfGrade;
readonly 상수는 const 상수와 달리 선언과 동시에 초기화하지 않아도 된다. static 키워드를 명시하지 않으면 static 상수가 아닌 일반 상수로선언된다.
readonly static int NumberOfGrade = 4;
'Program > ASP.NET' 카테고리의 다른 글
[ASP.NET] 7.네임스페이스 (0) | 2017.03.02 |
---|---|
[ASP.NET] 6. 객체 지향 프로그래밍 (0) | 2017.02.28 |
[ASP.NET] 4. HTML의 이해 (0) | 2017.02.23 |
[ASP.NET] 3. 주요 웹 개발 언어 비교 (0) | 2017.02.23 |
[ASP.NET] 2. ASP.NET의 이해 (0) | 2017.02.22 |