본문 바로가기
C# 공부

class 02

by Dev_Hugh 2021. 8. 22.
728x90
반응형

Study about class

중첩 클래스

  • 클래스 안에 선언되어 있는 클래스로 소속되어 있는 클래스의 멤버에 자유롭게 접근 가능하다. (private 멤버도 가능)
  • 클래스 외부에 공개하고 싶지 않은 형식을 만들거나 현재 클래스의 일부처럼 표현 가능한 클래스를 만들고자 할때 사용한다.
class OuterClass
{
    private int OuterMember;
    class NestedClass // 중첩클래스
    {
        public void DoSomething()
        {
            OuterClass outer = new OuterClass();
            outer.OuterMember = 10;
        }
    }
}

확장 메소드

  • 기본 클래스의 기능을 확장하는 기법
// 선언 방법
neamespace MyExtension
{
    public static class IntegerExtension
    {
        public static int Power(this int myInt, int exponent)
        {
            int result = myInt;
            for(int i = 1; i<exponent; i++)
            {
                result = result + myInt;
            }
            return result;
        }
    }
}

// 사용 방법
using MyExtension;
public static void Main()
{
    int a = 2;
    Console.WriteLine(a.Power(3));
}

class Vs struct

  • 클래스는 참조형식 구조체는 값형식
  • 클래스는 얕은복사 구조체는 깊은복사
  • 클래스는 인스턴스 생성에 new 연산자와 생성자 필요 구조체는 선언만으로 생성
  • 클래스 생성자는 매개변수 없는 기본생성자 선언 가능 구조체는 불가능
  • 클래스는 상속 가능 구조체는 Syste.Object 형식을 상속하는 System.Value Type으로부터 직접 상속받음
728x90
반응형

'C# 공부' 카테고리의 다른 글

interface  (0) 2021.08.25
tuple  (0) 2021.08.22
static  (0) 2021.08.22
inheritance  (0) 2021.08.22
class 01  (0) 2021.08.22