Microsoft MVP성태의 닷넷 이야기
글쓴 사람
csharplearner
홈페이지
첨부 파일
 

AComponent class의 사용자 코드에서 readonly struct를 다음과 같이 가지고 있는 경우,
_operation이 null인 경우가 발생해 제가 추가한 함수들에 모두 null체크가 추가되야하는데요
readonly struct를 제가 올바르게 사용하지 않고 있는걸까요?
간단하게 요약해보면 이런 상황입니다.
해당 struct는 무조건 Operation이 있는 context에서만 생성되고 사라지게끔 해주고 싶었는데 클래스 멤버변수로 못 가지게 막는 방법 등은 없을까요?


public readonly struct ResourceHandle<T>
{
    readonly IAsyncOperation _operation;
    public IsDone => _operation.IsDone;
    public event Action<T> Completed
    {
        add
        {
            _operation.AddCallback(value);
        }
        remove
        {
            _operation.RemoveCallback(value);
        }
    }
    public ResourceHandle(IAsyncOperation op)
    {
        _operation = op;
    }
}

public class AComponent
{
    ResourceHandle<AudioClip> lastHandle;
    Action<T> lastCallback;

    public void LoadAsync(Guid uuid)
    {
        if (!lastHandle.IsDone)
        {
            lastHandle.Completed -= lastCallback;
        }

        Action<AudioClip> lastCallback = (resource)=> {
            // ...
        };

        lastHandle = ResourceService.LoadAssetAsync<T>(uuid);
        lastHandle.Completed += lastCallback;
    }
}








[최초 등록일: ]
[최종 수정일: 2/24/2022]


비밀번호

댓글 작성자
 



2022-02-24 11시43분
질문이 좀 이해가 안 되는데요.

게다가 코드도 대충 짜집기한 것이라서 더 이해가 안 됩니다. 지금 상태에서 답변하면 왠지 계속 핑퐁이 될 것 같은데요, 정상적으로 예제 코드가 컴파일 오류가 발생하지 않는 상황까지는 만든 다음에 다시 질문해 주세요.
정성태

1  2  3  4  5  6  7  8  9  10  11  12  13  [14]  15  ...
NoWriterDateCnt.TitleFile(s)
5631김기헌3/24/202213085WPF 컨트롤의 그래픽 처리관련 질문드립니다 [2]파일 다운로드1
5630장성욱3/24/202213125로깅관련 질문입니다. [2]
5629감사합니...3/23/202213280함수에서 예외가 발생하면 try ~ catch처리기를 찾을 때 까지 상위 함수로 계속 올라가나요? [2]
5628홍길동3/23/202214938질문드립니다. [2]파일 다운로드1
5626연준혁3/21/202214041안녕하세요. [3]
5625jaew...3/18/202213765c# 8.0 도서를 구입한 사람입니다. [1]
5624초보자3/17/202213196람다 캡처 관련 문의 [2]
5623한예지 donator3/15/202212291인터프리터 원리가 궁금합니다. [4]
5622김민아3/8/202212969const와 readonly의 명확한 차이가 이게 맞나요? [2]
5621장성욱3/8/202213089c# 로그 관련 질문 [1]
5620김민아3/7/202212296안녕하세요 비관리 객체를 반환하는 메소드 호출 시 궁금한 점이 있어서 질문드립니다 [2]
5619팡팡이3/3/202214341RSA 문의드립니다. [3]
5618김기헌3/2/202212194안녕하세요 생성자 옆에 this 키워드를 붙여 생성자를 여러 개 호출 시 질문드립니다 [2]
5617Edun2/25/202213134ArgumentOutOrRangeException에러 발생 [2]파일 다운로드1
5616csha...2/24/202212341readonly struct로 선언된 구조체를 특정 클래스에서 멤버변수로 가지는 경우 [1]
5615장성욱2/22/202216232SetThreadAffinityMask를 이용한 쓰레드 지정하는 방법에 대해 궁금합니다. [4]
5614민우2/22/202215996SSL 통신 문의 [6]
5613김인태2/22/202213867서버와 PC 간의 어플리케이션 성능 차이 [1]
5612팬입니다2/20/202212168Kastrel 서버 관련 [1]
5611차가워2/19/202212666stopWatch 늘어짐 문의 [3]
5610차가워2/18/202212630Stopwatch 늘어짐 문제 [1]
5609cs린이2/15/202212104c# 함수의 호출 방식에 대해 궁금합니다! [2]
5608지호2/10/202213167시작하세요 C# 8.0 중 제네릭타입의 IEnumerable [3]파일 다운로드1
5607이로운2/10/202211637안녕하세요. 궁금한게 있어서 질문드립니다. [1]
5605강성봉2/10/202212724TCP PSH flag 패킷 수신 에러 [1]
5604LW2/9/202213520VISUAL STUDIO 2019 ==> 2020 설치시 오류가 생겨서 문의드립니다. [3]
1  2  3  4  5  6  7  8  9  10  11  12  13  [14]  15  ...