C\#클래스 와 구조의 차이 사례 분석

2619 단어 C#종류구조구별
클래스 와 구 조 는 C\#프로 그래 밍 에서 기본 적 인 데이터 유형 이 고 초보 자 들 은 이들 의 차 이 를 잘 구분 하지 못 한다.본 고 는 부대 실례 형식 으로 설명 한다.구체 적 으로 다음 과 같다.
1.기본 개념:
클래스:인용 형식,더미 에 저장,스 택 에 인용 주 소 를 저장 합 니 다.방법의 전송 에 서 는 주소 의 인용 만 전송 하고 가리 키 는 대상 을 수정 하면 원래 대상 의 값 에 영향 을 주 며 전송 에 메모리 가 적 습 니 다.
구조:값 유형,스 택 에 저장 되 어 전송 과정 에서 전체 대상 의 사본 을 전송 하고 대상 을 가리 키 는 값 을 수정 하면 원래 의 대상 에 영향 을 주지 않 으 며 전송 에 메모리 가 많이 소모 된다.
2.실례 코드 는 다음 과 같다.

class Program
{
    static void Main(string[] args)
    {
      /*         10*/
      TestClass TC1 = new TestClass();
      TC1.x = 10;
      TC1.y = "10";
      Console.WriteLine("/*     TC1    10*/");
      Console.WriteLine("TC1 x={0} y={0}", TC1.x, TC1.y);
      TC1.x = 20;
      TC1.y = "20";
      Console.WriteLine("/*      TC1   20*/");
      Console.WriteLine("TC1 x={0} y={0}", TC1.x, TC1.y);

      /*              */
      Console.WriteLine("/*      TC2    TC1,      10*/");
      TestClass TC2 = TC1;
      TC2.x = 10;
      TC2.y = "10";
      Console.WriteLine("/*                                                      */");
      Console.WriteLine("TC1 x={0} y={0}", TC1.x, TC1.y);
      Console.WriteLine("TC2 x={0} y={0}", TC2.x, TC2.y);

      /*      */
      Console.WriteLine("/*      TS1    10*/");
      TestStruct TS1 = new TestStruct();
      TS1.x = 10;
      TS1.y = "10";
      Console.WriteLine("TS1 x={0} y={0}", TS1.x, TS1.y);
      Console.WriteLine("/*       TS1   20*/");
      TS1.x = 20;
      TS1.y = "20";
      Console.WriteLine("TS1 x={0} y={0}", TS1.x, TS1.y);
      /*               */
      Console.WriteLine("/*       TS2    TS1,      10*/");
      TestStruct TS2 = TS1;
      TS2.x = 10;
      TS2.y = "10";
      Console.WriteLine("/*                                         */");
      Console.WriteLine("TS1 x={0} y={0}", TS1.x, TS1.y);
      Console.WriteLine("TS2 x={0} y={0}", TS2.x, TS2.y);

      Console.ReadLine();
    }
}
public class TestClass
{
  public int x;
  public string y;
}
public struct TestStruct
{
  public int x;
  public string y;
}

코드 실행 결 과 는 다음 그림 과 같 습 니 다.

좋은 웹페이지 즐겨찾기