facebook twitter hatena line email

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

提供: 初心者エンジニアの簡易メモ
移動: 案内検索
(ページの作成:「==サンプル== IUseCaseインターフェイスをAdUseCaseクラスに実装 呼び出し AdUseCase adUseCase = new AdUseCase(); AdUseCase.cs <pre> public class AdU...」)
 
 
(同じ利用者による、間の4版が非表示)
行3: 行3:
  
 
呼び出し
 
呼び出し
AdUseCase adUseCase = new AdUseCase();
+
<pre>
 +
AdUseCase adUseCase = new AdUseCase();
 +
adUseCase.Start();
 +
</pre>
  
 
AdUseCase.cs
 
AdUseCase.cs
行26: 行29:
 
     void Start();
 
     void Start();
 
     void Destroy();
 
     void Destroy();
 +
}
 +
</pre>
 +
 +
==インターフェイスを2つ実装したサンプル==
 +
IUseCaseインターフェイスをUserUseCaseクラスに実装
 +
 +
呼び出し
 +
<pre>
 +
UserUseCase userUseCase = new UserUseCase();
 +
userUseCase.Start();
 +
(userUseCase as IUserDelegate).OnClickUser(); // IUserDelegateだけのメソッドを持つインスタンスにして、メソッドを実行したい場合。
 +
</pre>
 +
 +
UserUseCase.cs
 +
<pre>
 +
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");
 +
    }
 +
}
 +
</pre>
 +
 +
IUseCase.cs
 +
<pre>
 +
interface IUseCase
 +
{
 +
    void Start();
 +
    void Destroy();
 +
}
 +
</pre>
 +
 +
IUserDelegate.cs
 +
<pre>
 +
public interface IUserDelegate
 +
{
 +
    public void OnClickUser();
 
}
 
}
 
</pre>
 
</pre>

2023年4月20日 (木) 05: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();
}