「Unity/Csharp/クラス/インターフェイス」の版間の差分
提供: 初心者エンジニアの簡易メモ
(→インターフェイスを2つ実装したサンプル) |
(→インターフェイスを2つ実装したサンプル) |
||
行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月20日 (木) 04:21時点における版
サンプル
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(); }
"Compiler Error CS0525"エラーとなる場合
対応前
public class HogePresenter : IHogePresenter { protected HogeView hogeView; } public interface IHogePresenter { protected HogeView hogeView; }
対応後
public interface IHogePresenter { protected HogeView hogeView { get => hogeView; set => hogeView = value; } }