본문 바로가기
IT/c#

c# 기초 - 2

by 가능성1g 2024. 12. 29.
반응형

클래스, 필드, 메서드, 생성자 == java 동일

 

종료자가 있음!

class 클래스_명

{

    ~클래스_명()  // c++ 하고 같음! 파괴자!

    {

    }

}

// GC가 있는데도 왜 종료자가! => GC 할때 호출된다고 한다!

 

정적(static) 멤버와 인스턴스 맴버

멤버 -> 필드, 메서드

 

정적 선언 위치가 java 랑 다르게 맨 앞이다.

static public int CountOfInstance;

그래서 기본 Main 선언형이 java랑 다른 모습이다.

class Program
{
	static void Main(string[] args)
    {
    	//Main
    }
}

 

namespace 가 있다. (c++ 용)

 

프로퍼티 문법 지원 (  get/set )

class Circle
{
  double pi = 3.14;
  
  public double Pi
  {
    get { return pi; }
    set { pi = value;}
  }
}

 

상속제한 예약어 sealed ( java 의 final )

 

System.Array 을 자동으로 상속받는 배열들 그리고 Array 의 멤버 사용 예제

int[] intArray = new int[] { 5, 4, 3, 2, 1 };

Console.WriteLine("배열의 차원 수: " + intArray.Rank);
Console.WriteLine("배열의 요소 수: " + intArray.Length);
Console.WriteLine();

for(int i=0;i<intArray.Length;i++)
{
    Console.Write(intArray.GetValue(i)+",");
}

Array.Sort(intArray);
Console.WriteLine("정렬 후 : ");
for (int i = 0; i < intArray.Length; i++)
{
    Console.Write(intArray.GetValue(i) + ",");
}

//복사!
int[] copyArary = new int[intArray.Length];
Array.Copy(intArray, copyArary, intArray.Length);

 

base ( java 에서 super )

 

virtual , override ( c++ 의 virtual 과 동일 , 가상메서드 선언 , 그리고 상속받은 클래스 구현시 override 이용 )

 

c++ 같이 연산자 오버로드 가능!

 

delegate 연쇄 함수포인터 연산자? GUI 이벤트 추가 선언등에 잘쓰임!

반응형