본문 바로가기

버블정렬( BubbleSort) C# / 델리게이트 활용 (delegate) / 오름차순 using System; delegate int SortCompare(int a, int b); class MainApp{ static void BubbleSort(int[] DataArray, SortCompare sortCompare) { int i=0; int j=0; int temp = 0; for ( i = 0; i< DataArray.Length -1; i++) { for( j =0; j 0 ){ temp = DataArray[ j + 1 ]; DataArray[ j + 1 ] = DataArray[ j ]; DataArray[ j ] = temp;} } } } static void Main(string[] args){ int[] array = { 2,5,3,4,10}; BubbleSort( .. 더보기
C# 확장클래스 [C# 확장클래스] 확장 메서드는 기존클래스의 기능을 확장하는 방법입니다. 확장 메서드의 선언은 static 한정자로 수식하며 첫번째 매개 변수는 반드시 this키워드와 함께 확장하고자 하는 클래스(형식)의 인스턴스여야 합니다. namespace 이름{public static class 이름{public static int(this int b){}}} [C# 확장클래스] namespace Extension{public static class IntegerExtension{public static int Powers(this int MeInt, int exponent){int result = MeInt;for( int i=1; i< exponent; i++){result = result * MeInt;}r.. 더보기
virtual 키워드, 메소드 숨기기 * 상위 클래스는 하위클래스가 override 해야할 메소드는 virtual로 한정! class Animal{public virtual void Initialize(){Console.WriteLine("Animal");}} class Cat:Animal{public override void initialize(){base.initialize(); Console.WriteLine("cat");}} *고양이는 동물카테고리에 속하기 때문에 동물 속성두 필요합니다. 그래서 base.initialize(); 를 호출합니다.*private로 선언한 메서드는 오버라이딩 할수 없습니다. *메소드 숨기기- CLR에게 기반클래스에서 구현된 버전의 메소드를 감추고 파생 클래스에서 구현된 버전만을 보여주는 것! - 메소드 숨.. 더보기
[ 기본 문법 is와 as ] [ is ] : 객체가 해당 형식에 해당하는지 검사! (bool 값으로 변환 ) [ as ] : 형식변환 연산자와 같은 역할 다만 형변환 연산자가 변환에 실패하는 경우 예외를 던지는 반면 as 연산자는 객체 참조를 null로 만듭니다. Tip : 이렇게 쓸 수 있어요! Mammal mannal = new Dog();Dog dog; if( mammal is Dog ){ dog = (Dog)mammal; dog.Bark();} 더보기
this 생성자 this() 생성자. 다음은 3개의 생성자를 오버로딩하는 클래스 코드 입니다. 이 클래스는 int형식의 필드a,b,c를 갖고 있습니다. 세 개의 생성자는 입력받는 매개 변수에 따라 이들 필드를 초기화 합니다. this가 객체 자신을 지칭하는 키워드 인것처럼, this()는 자기 자신의 생성자를 가르킵니다. class MeClass{int a,b,c; public MeClass(){this.a = 1234;}public MeClass(int b):this() // this()는 MeClass()를 호출 합니다.{this.b = b;}public MeClass(int b, int c):this(b) // this(int)는 MeClass(int)를 호출 합니다.{this.c = c; }} int a값은 12.. 더보기
shallow Copy[얕은 복사] class MeClass{ public int MyFiend1; public int MyFiend2;} MeClass source = new MeClass();source.MyFeild1=10;source.MyFeild2=20; print(source .MyFeild1, target.MyFeild2); // 10, 20 MeClass target = source; ( soruce값을 복사 받은 target에 새로운 값을 입력해 줍니다.) target.MyFeild2 = 30; print(target .MyFeild1, target .MyFeild2);print(source .MyFeild1, source .MyFeild2); // 10, 30// 10, 30 source.MyFeild2 의 값이 20에서.. 더보기