[C#] 클래스 VS ref 구조체



Answers

클래스가 항상 참조로 전달되고 구조체가 값으로 전달된다는 것을 알고 있지만 구조체를 참조로 전달하는 방법에 대해 설명합니다.

당신은 아마 올바른 생각을 가지고 있을지 모르지만 이것은 잘못되었습니다. ref 키워드를 사용하지 않으면 C #의 모든 값이 전달됩니다.

클래스 인스턴스는 참조 유형이며, struct 인스턴스는 값 유형입니다.

값을 기준으로 참조 유형을 전달하면 참조 사본 (작음)을 전달합니다. 값을 기준으로 값 유형을 전달하면 전체 데이터의 사본 (잠재적으로 큰 값)을 전달합니다.

Jon Skeet은이 모든 것을 여기 에서 잘 설명 합니다 .

Question

나는 C #을 사용하여 게임을 프로그래밍하고 있으므로 퍼포먼스에 대해 매우 염려합니다.

주요 차이점 및 가능한 경우 클래스를 사용하여 데이터를 전달하는 성능 고려 사항 또는 참조로 전달 된 구조체를 알고 싶습니다.

성능상의 이유로 데이터를 복사하지 않기를 바란다. (ref로 전달하는 것이 여기보다 훨씬 빠르다고 가정한다.)

클래스가 항상 참조로 전달되고 구조체가 값으로 전달된다는 것을 알고 있지만 구조체를 참조로 전달하는 방법에 대해 설명합니다.

전달하고자하는 데이터의 예 :

    public delegate void PathCompleteDelegate(List<PathFinderNode> path);
public struct PathFinderJob{
    public PathCompleteDelegate callback;
    public Vector3 start, end;
    public PathSize unitSize;
    public BoxCollider boxCollider;
}

앞의 예에서 클래스를 사용하면 차이가 있습니까? 그렇다면 차이점은 무엇입니까? 이 예제에서 클래스가 구조체보다 빠르지 않습니까? 왜?

고맙습니다. 후앙 카를로스




Links