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

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

... 31  32  33  34  35  [36]  37  38  39  40  41  42  43  44  45  ...
NoWriterDateCnt.TitleFile(s)
5004까오리7/4/201821579iis8.0에서 닷넷1.1을 사용하기 위한 질문입니다. [1]
5002멋쟁이7/2/201821822WPFApp에 관한 초보 질문입니다. [1]파일 다운로드1
5001김학완7/1/201821719시작하세요 C# 7.1 프로그래밍 P53쪽 질문입니다. [2]
5000레몬6/26/201824097안녕하세요 성태님 도움으로 C# 네이버 카페 스팸글 작성되면 삭제되는 프로그램을 만들었는데요..여쭤볼게 하나 있습니다. [3]
4999jt6/21/201818679검색어 입력, 엔터 > 페북 로그인창으로 이동합니다. [4]
4998개발희망6/11/201820977C# 형변환 질문있습니다! [1]
4997초보개발자6/5/201835153C++ dll C#에서 사용하는데 보호된 메모리 오류떠요 한번만 도와주세요ㅜ [1]파일 다운로드1
4996swc6/5/201820953현업에서 주로 사용하는 DB업데이트 방법 질문입니다. [1]파일 다운로드1
4993학생6/3/201818666질문 드립니다 [1]
4991최진안5/24/201819543Credential Provider 질문 [2]
4990heyg...5/21/201819711Sybase Adaptive Server Anywhere 6 버전에 대한 질문입니다. [9]
4989강한음5/18/201822844clickonce 배포 후 실행 무응답 [4]
4988C#7....5/17/201817744dynamic 키워드를 사용한 객체 핸들링에 대해서 여쭤보려고 합니다. [1]
4987포플러5/14/201820157닥터왓슨 로그 - c0000005 (액세스 위반) 분석 부탁드려도 될까요? [2]
4986익명5/14/201822566비주얼 스튜디오 wpf 프로젝트에서 어떻게 하면 exe파일과 실행에 필요한 파일들을 분리해서 정리해서 디렉토리로 묶을 수 있을까요? [4]
4985대구개발자5/7/201820042새로운 폴더만 "이름 없는 파일" 오류 [1]
4984안중언5/6/201820247교재 143page [1]
4983익명5/4/201831508(wpf) 다른 컴퓨터에서 사용하면 자꾸 ('CefSharp.Core.dll' 또는 여기에 종속되어 있는 파일이나 어셈블리 중 하나를 로드할 수 없습니다)라고 떠요.ㅠㅠ [5]
4982Soul...4/27/201820655MFC ActiveX 컨트롤 안에 있는 C# ActiveX 컨트롤 포인터 얻기 [4]
4981대전박4/25/201819742WPF IValueConverter 를 구현해서 StaticResource로 사용할때요 [1]
4980대전박4/23/201821566WPF OS버전 따라 Style 적용이 안되는 프로퍼티가 있을수 있나요? [2]
4979초보개발자4/18/201826325C# 프레임워크 버전이 다른 DLL끼리의 사용 [7]파일 다운로드1
4977Soul...4/17/201820810WebBrowser 컨트롤 Script 통신 문제 [3]
4976맹가이버4/14/201821357윈도우 서비스 프로그램에서 응용프로그램 호출하는 법 [1]
4975lemo...4/11/201822139안녕하세요 네이버로그인관련 질문드립니다. [2]
4973홍길동4/6/201820000ebook 출간 계획은 없으신가요? [2]
... 31  32  33  34  35  [36]  37  38  39  40  41  42  43  44  45  ...