using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public struct PersonStruct
{
    public int age;
}

public class PersonClass
{
    public int age;
}

public class Test : MonoBehaviour
{
    void Start()
    {
        // struct는 값 타입이기 때문에 내부적으로 new 연산자를 자동으로 호출한다. 
        PersonStruct personStruct1;
        personStruct1.age = 10;

        // new 연산자를 직접 써줘도 된다.
        PersonStruct personStruct2 = new PersonStruct();
        personStruct2.age = 20;

        // 클래스는 항상 new 연산자를 이용해 생성해야 한다.
        PersonClass personClass = new PersonClass();
        personClass.age = 30;
    }
}

 

C# 구조체와 클래스 차이점 

구조체는 값타입이라는것과 클래스는 참조 타입이라는 점에서 차이점이 있다. 구조체를 사용하는이유는 클래스 사용시에 참조로인한 시간적 비용적 낭비를 없애기 위해 사용한다. 구조체는 값 타입이기에 직접적으로 메모리에 접근하므로 낭비를 막을수 있다. C#에서는 크기가 작고 단순한 함수들을 포함하는 선, 컬러 들과 같은 그래픽요소등을 구조체로 정의해두었다. 또한 구조체와 클래스의 다른점은 구조체는 상속자체가 불가능하다.

Posted by 소블리애
,