1. 클래스는 힙에 저장됩니다. 이 방법은 발행된 데이터의 수명 주기의 유연성을 보장할 수 있습니다. 비록 성능 손실이 있지만 관리되는 힙의 최적화로 인해 손실이 상대적으로 적습니다.
그러나 때때로 상대적으로 작은 데이터 구조만 필요한 경우에는 구조 사용을 고려할 수 있습니다.
좋다
클래스 창양식
{
공개 int 왼쪽;
공개 int 오른쪽;
}
두 개의 저장 항목만 있는 이러한 클래스는 이 두 변수만 처리하면 됩니다. 그런 다음 구조로 정의할 수 있습니다.
구조체 창양식
{
공개 int 왼쪽;
공개 int 오른쪽;
windowForm(왼쪽 정수, 오른쪽 정수)
{
this.Left = 왼쪽;
this.오른쪽 = 오른쪽;
}
공공 무효 세트()
{
Console.WriteLine("왼쪽:" + 왼쪽 + " 오른쪽:" + 오른쪽);
}
}
이런 방식으로 생성자가 있는 구조는 큐에서 정의할 때 발생하는 문제와 성능 문제를 피할 수 있습니다.
구조는 속성 등을 정의할 수도 있습니다.
2. 구조는 스택이나 인라인에 저장된 값 유형입니다.
다음과 같습니다. 두 Set 메서드는 동일한 구조를 처리하며 Left 값을 변경할 수 없습니다.
수업 프로그램
{
정적 무효 Main(string[] args)
{
windowForm win = new windowForm();
win.set();
변화(승);
win.set();
Console.Read();
}
정적 무효 변경(windowForm win)
{
승리.왼쪽 = 1;
}
}
3. 구조는 상속될 수 없습니다.
4. 구조체의 생성자는 컴파일러에서 제공하는 매개변수 없는 생성자이므로, 이를 대체할 새로운 생성자를 정의할 수 없습니다.
5. 구조는 주로 작은 데이터 구조에 사용됩니다. 너무 크면 성능이 저하됩니다.
6. 구조체를 매개변수로 전달할 때 ref 키워드를 사용하세요. 그렇지 않으면 매번 새로운 내용이 복사되어 불필요한 성능 소모가 발생합니다.
7. 하나의 구조체가 다른 구조체에 할당되면 해당 구조체는 비참조형이므로 매번 모든 복사본이 생성되며 클래스는