static 과 abstaract 는 같이 사용할 수 없는건가요?

조회수 622회
public abstract class AbstractDataInterface : Fragment, DataInterface
{

    public abstract void SetHandler(int dest, Handler handler);
    public abstract Handler GetHandler(int dest);
    public abstract int SendMessage(Handler handler, int dest, int cmd, Object o);
}

이러한 클래스가 있고, 이 클래스를 상속받아서 플래그먼트에서

public class RD_TT_AIS_Fragment : AbstractDataInterface
{
    public override Handler GetHandler(int dest)
    {
        return AbstractDataInterface._Handler[dest];
    }

    public class MyHandler : Handler
    {
        public override void HandleMessage(Message msg)
        {
            base.HandleMessage(msg);

            _Handler = GetHandler(AbstractDataInterface.IDX_PROCS_DISP_DATA);
            _Message = _Handler.ObtainMessage();
            _Handler.SendEmptyMessageDelayed(0, 3000);

            Console.WriteLine("+++++++++++++++++++++++++++++++ Menu - A : " + A.Checked);
            Console.WriteLine("+++++++++++++++++++++++++++++++ Menu - B : " + B.SelectedItem);
            Console.WriteLine("+++++++++++++++++++++++++++++++ Menu - C : " + C.Progress);
            //handler.SendEmptyMessageDelayed(0, 200);

        }
    }
}

참조 ) 코드 전부를 올리지는 않았습니다, 이러한 정의를 내립니다. 문제는 안드로이드 스튜디오에서는 정상적으로 작동하지만, C#, 자마린에서는

" _Handler = GetHandler(AbstractDataInterface.IDX_PROCS_DISP_DATA);" 이부분이 GetHandler가 static으로 지정되어 있어야만 사용가능하다는 오류가 발생합니다. 어떻게 해결해야할까요?

  • (•́ ✖ •̀)
    알 수 없는 사용자

1 답변

  • https://docs.microsoft.com/ko-kr/xamarin/android/internals/api-design 의 내부 클래스에 대한 설명을 보시면 이해가 되실 것 같습니다.

    Non-static nested classes, also called inner classes, are significantly different. They contain an implicit reference to an instance of their enclosing type and cannot contain static members (among other differences outside the scope of this overview).

    • (•́ ✖ •̀)
      알 수 없는 사용자
    • 일단 해결을 봣는데, 뭔가 찜찜한 느낌이긴하네요 ㅋㅋ 감사합니다 ㅋ 알 수 없는 사용자 2018.8.16 09:08

답변을 하려면 로그인이 필요합니다.

프로그래머스 커뮤니티는 개발자들을 위한 Q&A 서비스입니다. 로그인해야 답변을 작성하실 수 있습니다.

(ಠ_ಠ)
(ಠ‿ಠ)