* .Net (닷넷) 프레임워크

   - 윈도우 프로그램 개발 및 실행 환경

   - 크게 CLR 과 닷넷 프레임워크 클래스 라이브러리로 나눌 수 있다

 

* 클래스 라이브러리

   - BCL (Base Class Library) : 핵심적인 클래스

   - Windows User Interface : 윈도우 폼

   - ASP.NET : 웹프로그래밍 지원

   - ADO.NET : DB 지원

 

* CLR (Common Language Runtime)

   - 닷넷 언어는 컴파일 후에 MSIL 로 변환된다. 이를 Windows 에서 실행하기 위해서는
     CLR 에 있는 JIT 컴파일러를 통해 Native Code 로 컴파일 후에 실행시킨다
     (즉, MSIL 은 자바의 byte code 와 유사하며, CLR 은 JRE(JVM) 과 유사하다)

 

* MSIL (Microsoft Intermediate Language)

   - 어느 플랫폼에서 만들었는지 상관없이 자신의 플랫폼에서 사용할 수 있게 해준다

   - VB.NET, C#, C++.NET 등을 MSIL 로 컴파일하면 닷넷 기반의 exe (실행파일), dll (클래스 라이브러리) 로 만들어진다.

 

* C#

   - C++ 에서 + 2개가 더해져 만들어짐

   - Java 처럼 Garbage Collector 를 지원

 

* COM (Component Object Model)

   - 프로그램의 단위를 컴포넌트로 생각하고 개발하는 것

 

* VS 의 Solution 과 Project

   - 1개의 솔루션에 여러개의 프로젝트가 포함될 수 있고, 프로젝트별로 적용, 빌드, 배포 설정을 달리 할 수 있다

   - .sln / .suo 확장자로 만들어진 파일을 통해 솔루션을 관리한다

   - 프로젝트는 .csproj 확장자로 관리된다.

 

* Command 로 컴파일하기

   - 프로젝트 폴더에서 "csc xxxxx.cs" 명령어 입력

 

* C# 의 시작점

   - public static void Main() 메소드에서 시작한다

 

* swtich 문

   - C# 은 다른 언어와 달리 조건 검사를 순차적으로 하지 않기 때문에 break, return 등을 꼭 작성해야 한다

 

* 매개변수 타입

   - Reference 변수

      : "ref" 라는 키워드를 이용한다

      : ref int n = int& n

      : ref n = &n

   - In 변수

      : "in" 키워드 사용

      : 참조로 전달하지만 읽을 수만 있음

   - Out 변수

      : "ref" 타입과 유사하지만, 차이점은 ref 는 메소드로 전달되기 전에 초기화 되어야 한다.

         하지만, out 은 초기화 없이 전달 가능하지만 호출된 메소드에서 초기화한 이후에 리턴 되어야 한다.

   - Params 변수

      : "params" 키워드를 활용한 가변길이 방식이다
      : params int[] n= int... n

 

* 접근 지정자

   - public : 외부에 모두 공개할 경우 사용

   - private : 같은 클래스 내에서만 접근 가능

   - protected : 같은 클래스 및 파생 클래스에서만 접근 가능

   - internal : 동일한 물리적 파일 안에 있는 클래스에서만 접근할 수 있다

   - protected internal : 같은 물리적 파일 안의 파생 클레스에서만 접근할 수 있다

 

* 기본 접근 지정자

   - private : 필드, 메소드, 속성, 이벤트

   - internal : 클래스, 구조체, 열거형, 인터페이스, 위임자

 

* Read only

   - 초기에 정해진 값을 변경하지 않고 사용한다는 의미

   - Java 의 final 과 비슷

 

* 메소드 오버라이딩

   - public virtual void name() = Java abstract 와 동일

   - public override void name()

 

* is 연산자

   - Java 의 instance of 와 동일

 

* as 연산자

   - vehicle = car as Vehicle;

   - Car 형 변수를 Vehicle 로 형변환 성공하는 경우에는 Vehicle instance 를 리턴하고 그렇지 않으면 null 을 리턴

 

* Indexer

   - 객체를 배열처럼 사용할 수 있게 해주는 연산자

public class IndexerTest
{
	private Hashtable myFavorite = new Hashtable();
	public string this [string kind]
	{
		get {return (string myFavorite[kind]; }
		set {myFavorite[kind] = value; }
	}
}

public static void Main()
{
	IndexerTest it = new IndexerTest();
	it["fruit"] = "apple";
	it["color"] = "blue";
}

 

 

      

 

 

 

+ Recent posts