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분
질문이 좀 이해가 안 되는데요.

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

... 91  92  [93]  94  95  96  97 
NoWriterDateCnt.TitleFile(s)
132정성태4/1/200511366            답변글 [답변]: [답변]: [답변]: SmartClient 배포와 관련해서 무엇이 빠졌는지 좀 알려주시면 감사하겠습니다....!
133김용국4/1/200511556                답변글 [답변]: [답변]: [답변]: [답변]: SmartClient 배포와 관련해서 무엇이 빠졌는지 좀 알려주시면 감사하겠습니다....!
126구정모3/31/200512853이홈의 효과는 어떻게???
128정성태3/31/200511998    답변글 [답변]: 이홈의 효과는 어떻게???
124배재현3/30/200511705Smart Client 문제로 이렇게 질문을 하나 올리게 됐습니다.^^;;
125정성태3/30/200511478    답변글 [답변]: Smart Client 문제로 이렇게 질문을 하나 올리게 됐습니다.^^;;
121안연준3/23/200511228이벤트 관련 문제
122정성태3/23/200511129    답변글 [답변]: 이벤트 관련 문제
120안연준3/23/200511087정성태님.... 오프라인 문제 질문 입니다. [1]
123정성태3/23/200511290    답변글 [답변]: 정성태님.... 오프라인 문제 질문 입니다. [1]
117정준명3/21/200512128COM+ 메소드 작성시...
118정성태3/29/200511764    답변글 [답변]: COM+ 메소드 작성시... [1]
109김용국3/18/200512692IE에 Docking된 WinFormControl내의 특정 메소드에 값을 보내기 .. 잘 되기는 하는데 한가지 문제가 ...
112정성태3/19/200511821    답변글 [답변]: IE에 Docking된 WinFormControl내의 특정 메소드에 값을 보내기 .. 잘 되기는 하는데 한가지 문제가 ...
113김용국3/19/200511815        답변글 [답변]: [답변]: IE에 Docking된 WinFormControl내의 특정 메소드에 값을 보내기 .. 잘 되기는 하는데 한가지 문제가 ...
114정성태3/19/200511763            답변글 [답변]: [답변]: [답변]: IE에 Docking된 WinFormControl내의 특정 메소드에 값을 보내기 .. 잘 되기는 하는데 한가지 문제가 ...
115김용국3/21/200511232                답변글 [답변]: [답변]: [답변]: [답변]: IE에 Docking된 WinFormControl내의 특정 메소드에 값을 보내기 .. 잘 되기는 하는데 한가지 문제가 ... [1]
119김용국3/22/200511248                    답변글 [답변]: 정상태님 아주 잘 해결 되었습니다.... 감사합니다!
108guest3/17/200511386닷넷 프레임워크 배포
111정성태3/19/200511856    답변글 [답변]: 닷넷 프레임워크 배포
107안연준3/17/200511071[-_-]스마트 클라이언트에 관련 된 질문[-_-]
110정성태3/19/200511955    답변글 [답변]: [-_-]스마트 클라이언트에 관련 된 질문[-_-]
116안연준3/21/200511377        답변글 [답변]: 친절한 답변 고맙습니다.
98김용국3/18/200513254정성태님... 연결이 준비됬습니다
99정성태3/2/200514300    답변글 [답변]: 정성태님... 연결이 준비됬습니다
100김용국3/18/200511281        답변글 [답변]: 죄송합니다! 급히올리느라 file path의 변경을 하지않고 그냥올렸네요....!
... 91  92  [93]  94  95  96  97