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
반응형