본문 바로가기
Revit/Revit API

C# 시작하기

by Crony 2013. 10. 19.

using // C#의 키워드로 무엇을 사용하겠다고 컴파일러에게 알리는 역활을 합니다.

System // System 네임스페이스안의 클래스를 사용하겠다고 컴파일러에게 알리는 역활을 합니다.

; // 컴파일러에게 문장의 끝을 알리는 역활을 합니다.

C#의 키워드

using


네임스페이스 // 클래스를 관리하기 위한 논리영역-클래스등으로 구성이 된다

데이터 형식

값형식 참조형식의 분류

기본 데이터 형식과 복합 데이터 형식의 분류

변수


C# 참조(

C# 키워드

형식(

값 형식

bool

byte

char

decimal

double

enum

float

int // http://msdn.microsoft.com/ko-kr/library/5kzh1b5w(v=vs.100).aspx

long

sbyte

short

struct

uint

ulong

ushort

참조 형식

class // http://msdn.microsoft.com/ko-kr/library/0b0thckt(v=vs.100).aspx

delegate

dynamic

interface

object

string // http://msdn.microsoft.com/ko-kr/library/362314fe(v=vs.100).aspx

void // http://msdn.microsoft.com/ko-kr/library/yah0tteb(v=vs.100).aspx

var

형식 참조 표

기본 제공 형식 표(C# 참조)

정수 계열 형식 표(C# 참조)

부동 소수점 형식 표(C# 참조)

기본값 표(C# 참조)

값 형식 표(C# 참조)

암시적 숫자 변환 표(C# 참조)

명시적 숫자 변환 표(C# 참조)

숫자 결과 형식 지정 표(C# 참조)

)

한정자(

액세스 한정자

액세스 가능성 수준

액세스 가능 도메인

액세스 가능성 수준 사용에 대한 제한

internal

private // http://msdn.microsoft.com/ko-kr/library/st6sy9xe(v=vs.100).aspx

protected

public // http://msdn.microsoft.com/ko-kr/library/yzh058ae(v=vs.100).aspx

abstract

const

event

extern

in(제네릭 한정자)

out(제네릭 한정자)

override

readonly

sealed

static // http://msdn.microsoft.com/ko-kr/library/98f28cdx(v=vs.100).aspx

unsafe

virtual

volatile

)

문 키워드(

선택문

if-else // http://msdn.microsoft.com/ko-kr/library/5011f09h(v=vs.100).aspx

switch

반복문

do

for

foreach, in // http://msdn.microsoft.com/ko-kr/library/ttw7t8t6(v=vs.100).aspx

while

점프문

break

continue

goto

return

예외 처리문

throw

try-catch

try-finally

try-catch-finally

Checked 및 Unchecked

checked

unchecked

fixed 문

lock 문

)

메서드 매개 변수(

params

ref

out

out 매개 변수 한정자

)

네임스페이스 키워드(

namespace

using

using 지시문(C# 참조)

using 문(C# 참조)

extern alias

)

연산자 키워드(

as

is

new

new 연산자(C# 참조)

new 한정자(C# 참조)

new 제약 조건(C# 참조)

sizeof

typeof

stackalloc

)

변환 키워드(

explicit

implicit

operator

)

액세스 키워드(

base

this

)

리터럴 키워드(

null

true

false

default

)

컨텍스트 키워드(

add

get

global

부분(형식)

부분(메서드)

remove

set

where(제네릭 형식 제약 조건)

value

yield

)

쿼리 키워드(

from 절

where 절

select 절

group 절

into

orderby 절

join 절

let 절

ascending

descending

on

equals

by

in

)

C# 연산자(

[] 연산자 // http://msdn.microsoft.com/ko-kr/library/a3hd7ste(v=vs.100).aspx

() 연산자 // http://msdn.microsoft.com/ko-kr/library/0z4503sa(v=vs.100).aspx

. 연산자 // http://msdn.microsoft.com/ko-kr/library/6zhxzbds(v=vs.100).aspx

:: 연산자

+ 연산자 // http://msdn.microsoft.com/ko-kr/library/k1a63xkz(v=vs.100).aspx

- 연산자

* 연산자

/ 연산자

% 연산자

& 연산자

| 연산자

^ 연산자

! 연산자

~ 연산자

= 연산자

< 연산자

> 연산자

?: 연산자 // http://msdn.microsoft.com/ko-kr/library/ty67wk28(v=vs.100).aspx

++ 연산자 // http://msdn.microsoft.com/ko-kr/library/36x43w8w(v=vs.100).aspx

-- 연산자

&& 연산자

|| 연산자

<< 연산자

>> 연산자

== 연산자

!= 연산자

<= 연산자

>= 연산자

+= 연산자 // http://msdn.microsoft.com/ko-kr/library/sa7629ew(v=vs.100).aspx

-= 연산자

*= 연산자

/= 연산자

%= 연산자

&= 연산자

|= 연산자

^= 연산자

<<= 연산자

>>= 연산자

-> 연산자

?? 연산자

=> 연산자

)

C# 전처리기 지시문(

#if

#else

#elif

#endif

#define

#undef

#warning

#error

#line

#region

#endregion

#pragma

#pragma warning

#pragma checksum

)

C# 컴파일러 옵션

C# 컴파일러 오류

C# 언어 사양

)


메소드의 정의

접근권한자 static 리턴타입 메소드이름 (인자리스트)

    {

          메소드본문;

    }

 

컬러색상 옵션으로 생략이 가능합니다.

접근권한자를 명시하지 않은 경우 기본적으로 private가 됩니다.


접근제한자(access modifier) : 각각의 데이형에 대한 접근 허용정도를 나타냅니다.

public : 모든 접근을 가능

protected : 상속 관계에서만 접근을 가능

private :자신의 클래스에서만 접근을 가능

internal : 같은 컴파일 유닛안에 있는 다른 데이터형들에서만 접근이 가능

접근권한자는 메소드 외에 변수 클래스등에도 사용이 됩니다.


static : 클래스 멤버를 선언하는 형식으로 C# 프로그램에서의 시작점(Entry Point) 을 지칭합니다.

static 메서드로 선언되어 있기 때문에 인스턴스가 생성되지 않더라도 항상 프로그램이 실행되는 것이다.


리터타입

void : 메소드가 실행 후 리턴되는 값이 없음.


예제

using System;

using System.Collections.Generic;

using System.Linq;

using System.Text;


namespace ConsoleApplication3

{

    class HelloClass

    {

        public HelloClass()

        {

            Console.WriteLine("Default ctor called");

        }

        public HelloClass(int x, int y)

        {

            Console.WriteLine("Custom ctor called");

            intX = x;

            intY = y;

        }

        public int intX, intY;

        public static int Main(string[] args)

        {

            HelloClass c1 = new HelloClass();

            Console.WriteLine("c1.intX = {0}\nc1.intY = {1}\n", c1.intX, c1.intY);

            HelloClass c2;

            c2 = new HelloClass(100, 200);

            Console.WriteLine("c2.intX = {0}\nc2.intY = {1}\n", c2.intX, c2.intY);

            return 0;

        }

    }

}