「Unity/Csharp/クラス/インターフェイス」の版間の差分

提供: 初心者エンジニアの簡易メモ
ナビゲーションに移動 検索に移動
編集の要約なし
75行目: 75行目:
{
{
     public void OnClickUser();
     public void OnClickUser();
}
</pre>
=="Compiler Error CS0525"エラーとなる場合==
対応前
<pre>
public class HogePresenter : IHogePresenter
{
    protected HogeView hogeView;
}
public interface IHogePresenter
{
    protected HogeView hogeView;
}
</pre>
対応後
<pre>
public interface IHogePresenter
{
    protected HogeView hogeView { get => hogeView; set => hogeView = value; }
}
}
</pre>
</pre>

2023年4月19日 (水) 20:40時点における版

サンプル

IUseCaseインターフェイスをAdUseCaseクラスに実装

呼び出し

AdUseCase adUseCase = new AdUseCase();
adUseCase.Start();

AdUseCase.cs

public class AdUseCase : IUseCase
{
    public void Start()
    {
        Debug.Log("AdUseCase.Start");
    }
    public void Destroy()
    {
        Debug.Log("AdUseCase.Destroy");
    }
}

IUseCase.cs

interface IUseCase
{
    void Start();
    void Destroy();
}

インターフェイスを2つ実装したサンプル

IUseCaseインターフェイスをUserUseCaseクラスに実装

呼び出し

UserUseCase userUseCase = new UserUseCase();
userUseCase.Start();
(userUseCase as IUserDelegate).OnClickUser(); // IUserDelegateだけのメソッドを持つインスタンスにして、メソッドを実行したい場合。

UserUseCase.cs

public class UserUseCase : IUseCase, IUserDelegate
{
    public void Start()
    {
        Debug.Log("UserUseCase.Start");
    }
    public void Destroy()
    {
        Debug.Log("UserUseCase.Destroy");
    }
    public void OnClickUser()
    {
        Debug.Log("UserUseCase.OnClickUser");
    }
}

IUseCase.cs

interface IUseCase
{
    void Start();
    void Destroy();
}

IUserDelegate.cs

public interface IUserDelegate
{
    public void OnClickUser();
}