ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • Struct and Class
    Search: C#(Csharp) C#(Csharp) 2021. 7. 31. 12:46

     

    기본적인 선언과 사용은 비슷하다.

     

    주요 차이

    memory할당: calss는 heap에, struct는 stack에 할당 된다.

    reference방식: 값 형식 참조(Value type reference)와 참조 형식 참조(Reference type reference, C언어에서는 address point방식).

    생성방식: struct는 new 없어도 된다.

     

    memory할당

    C#에서 class는 항상 heap에 할당된다.
    struct는 로컬 함수 변수인 경우 stack에 할당된다. 그러나 class member인 경우 class의 일부로 heap에 할당된다.

     

    //"int a"도 stack에 할당 된다.
    int a = 1;
    int b = a;
    b = 3;
    //a != b;

     

    reference방식

    함수인자로 전달될 때 차이. struct를 넣으면 복사 된다. class를 넣으면 참조값만 넘어간다. 복사를 방지하고 참조로 넣고 싶으면 ref를 앞에 붙인다. ex calc(ref structA);

     

    생성방식

    Vector3 v3;
    
    v3.x = 123;

     

    'C#(Csharp)' 카테고리의 다른 글

    C# get set property  (0) 2023.02.15
    C# List  (0) 2023.02.15
    SortedList  (0) 2021.08.08
    실수형 소수점 자리 제한하여 출력(float, decimal)  (0) 2021.07.27
    Formating strings  (0) 2021.07.27
    List.Sort  (0) 2021.07.26
    SortedSet  (0) 2021.07.24
    HashSet  (0) 2021.07.24

    댓글