Welcome! Here is ehclub.net
다루는 내용
- C#으로 콘솔 응용 만들기
- csc 컴파일러
따라하기
1. 먼저 다음과 같은 코드를 메모장으로 작성하자.
welcomeapp.cs
namespace EhCSharp
{
class WelcomeApp
{
static void Main()
{
System.Console.WriteLine("Welcome! Here is ehclub.net");
}
}
}
2. Visual Studio 2008 명령 프로프트를 실행하자.
3. 저장된 파일 위치로 가서 csc 파일명으로 컴파일하여 실행명령을 내려보자.
설명
1. namespace EhCSharp
네임스페이스는 이름 충돌을 막기 위한 것으로 서로 다른 네임스페이스에 같은 명칭의 클래스명을 허용한다. 이는 .NET 컴포넌트를 개발하여 배포를 할 때 회사 명칭을 prefix로 하고 postfix로 random한 명을 넣어 네임스페이스를 만든다면 다른 컴포넌트들의 클래스와 이름 충돌나는 것을 막을 수 있을 것이다.
☞ namespace Ehclub_WelcomeApp_AiDeZzYf42cEe
네임스페이스안에 네임스페이스를 둘 수 있으며 같은 네임스페이스를 사용하는 여러 소스파일을 만들 수도 있다.
또한, 소스 시작부에 using [네임스페이스명]을 명시하면 해당 네임스페이스명을 생략하고 내부에 명칭을 사용할 수 있다.
예를 들어 위의 welcomeapp.cs 소스에 using System을 추가하여 다음과 같이 작성할 수도 있다.
using System;
namespace EhCSharp
{
class WelcomeApp
{
static void Main()
{
Console.WriteLine("Welcome! Here is ehclub.net");
}
}
}
물론 using하는 두개의 namespace에 같은 명칭을 사용하는 것이 있다면 네임스페이스까지 포함해서 사용함으로써 이름 충돌을 막을 수 있다.
2. class WelcomeApp
C# 또한 객체 지향 언어로써 클래스 타입을 지원하고 있다.
C++과 달리 단일 상속만 지원하고 있고 대신 인터페이스에 대해서는 다중 상속이 가능하다.
상속(클래스,인터페이스) |
예제 |
없음,없음 | class ClassA |
있음,없음 | class ClassB: BaseClass |
없음, 인터페이스 2개 | class ClassC: ICompare,IEnumerable |
있음, 인터페이스 1개 | class ClassD: BaseClass, IEnumberalbe |
클래스의 멤버로는 생성자, 소멸자, 상수, 필드, 메소드, 속성(프로퍼티), 인덱서, 연산자, 이벤트, 대리자(델리게이트), 클래스, 인터페이스, 구조체가 올 수 있다.
3.static void Main()
진입점 메소드이다. 만약, 두 개 이상의 클래스에 Main메소드가 정의되어 있을 경우에는 컴파일 옵션을 통해 지정해야 한다.
☞콘솔에서
csc /main:클래스명 소스파일명
위의 방식이 안 되면 다음과 같이 하면 된다.
csc /main:네임스페이스명.클래스명 소스파일 명
☞Visual Studio에서
1. 프로젝트 메뉴의 속성 페이지를 선택
2. 응용 프로그램 탭에서 시작 개체 선택
Main메소드 | |
반환값 | void or int |
입력 매개변수 | () or (String[] args) |
☞반환값
Windows 기반의 응용에서는 반환값을 사용해야 하는 경우는 그리 많지 않다. 그래도 있다면 배치파일에서 실행 성공했는지를 알아야 하는 경우 정도일 것이다.
다음은 eh.bat파일의 내용이다. welcomeapp.cs 파일을 컴파일 성공하면 welcomeapp를 실행 시키고 실패하면 실패 메시지가 출력하도록 작성해 보았다.
@echo off
csc welcomeapp.cs
@if "%ERRORLEVEL%" == "0" goto success
:fail
echo 컴파일 실패
echo return value = %ERRORLEVEL%
goto end
:success
echo 컴파일 성공
echo return value = %ERRORLEVEL%
:test
welcomeapp
@if "%ERRORLEVEL%" == "0" goto success2
:fail
ehco 데모 실행 실패
echo return value = %ERRORLEVEL%
goto end
: success2
echo 데모 실행 성공
echo return value = %ERRORLEVEL%
:end
☞void Main(String[] args)
welcomeapp를 다음과 같이 Main내부를 고쳐 보자.
using System; //System 네임스페이스를 사용하겠다는 말
namespace EhCSharp
{
class WelcomeApp
{
static void Main(String[] args)
{
foreach(String s in args)
{
Console.WriteLine(s); //using System을 하여 System을 명시할 필요가 없다.
}
Console.WriteLine("Welcome! Here is ehclub.net");
return 0;
}
}
}
Look & Think & Feel
다음은 Visual Studio 2008에서 작업하는 모습이다.
1. 프로젝트 생성
2. 코드를 편집한다.
역시 편하다.
3. 테스트를 한다.
'언어 자료구조 알고리즘 > C# 언어 문법' 카테고리의 다른 글
11.Class (0) | 2009.08.19 |
---|---|
10.Casting (0) | 2009.08.19 |
9.String (0) | 2009.08.19 |
8. Object (0) | 2009.08.19 |
7. 배열 (0) | 2009.08.19 |
6. valuetype 기본 형식 (0) | 2009.08.19 |
5. .NET Framework (0) | 2009.08.19 |
4. const 와 readonly (0) | 2009.08.19 |
3. 소멸자 (0) | 2009.08.19 |
2. 생성자 (0) | 2009.08.19 |