Page 10 -
P. 10
C#에서는 형(type)이나 형 멤버, 지역 변수를 선언해야 한다.
1.1 형 멤버를 선언하지 않고 사용할 수 있는 방법도 있지만, 사용 빈도가 낮다. 왜일까?
The C# Best Know-how
선수 선서는 반드시 처음에 하자: 운동회로 치면 가능한 한 선수 선서를 하지 않고 하나라도 많은 경기에 참여하는 것이
옳을까?
선언 처리 코드로 말하면 다음 프로그램의 int a;는 필요 없는 부분일까? 이 부분을 지우고 바로 계
산 처리를 작성하는 것이 맞지 않을까?
using System;
선언이란 무엇인가? class Program
{
그래머양 C#에서는 변수를 사용하려면 미리 선언을 해야 하잖아? static void Main(string[] args)
{
도빈 그렇지.
int a;
그래머양 왜 꼭 선언을 해야 하지? 운동회 ‘프로그램(순서)’을 예로 들어서 설명해줘. a = 1 + 2;
Console.WriteLine(a);
도빈 운동회 순서로 말하자면 선수 선서에 해당한다고 할 수 있지.
}
}
그래머양 선수 선서는 형식적인 거잖아. 하든 말든 운동회에는 영향을 끼치지 않아.
도빈 일단 운동회에 참가 중인 굿맨과 배드맨을 만나보자. 기술적으로는 int a;를 제거해도 문제가 없다.
굿맨 이봐! 마라톤에서 지름길로 가는 건 반칙이야.
왜냐하면 코드에 a라는 변수명이 나오는 이상 변수 a를 사용하는 것이 분명하기 때문이다.
배드맨 규칙에 지름길이 반칙이라고 적혀 있지 않은걸? 사용이 명백하다면 시스템이 알아서 변수 영역을 확보할 수 있다. 형은 어떨까? 사실 int형
인 1과 2를 더한 결과를 저장하므로 변수 a가 int형임을 추측할 수 있다. 즉, ‘변수 a를 정수
굿맨 그래도 그건 스포츠 정신에 어긋나는 거라고!
형으로 선언한다’는 의미인 int a;를 제거해도 된다.
배드맨 나는 스포츠 정신 같은 거 선언한 적이 없으니 마음껏 반칙해도 상관없어.
사실 반드시 변수를 선언하지 않아도 되는 프로그래밍 언어도 있다. 단순히 C#이 다른
굿맨 그러면 나도 지름길로 갈까…….
길을 선택했다고 볼 수 있다. 하지만 진짜 문제는 여기서부터다. 왜 C#은 삭제해도 되는
배드맨 그건 안 되지. 굿맨은 선수 선서를 할 때 스포츠 정신에 따라 정정당당하게 싸
선언을 반드시 하게끔 만들었을까? 왜 C# 프로그래머는 생략 가능한 선언을 해야 하는 것
울 거라고 선언했잖아. 너는 지름길로 갈 수 없어. 스포츠 정신에 어긋나니까.
일까?
굿맨 쳇, 비겁한 녀석.
다시 운동회 얘기로 돌아가 보자. 왜 운동회에서는 제일 먼저 선수 선서를 할까? 왜 ‘스포츠
정신에 따라 정정당당하게 싸운다’는 것을 선언해야 하는 걸까? 이기기 위해 부정행위를 하
는 선수가 있기 때문이다.
1장 기본에 숨겨진 함정 017