Advertisement
Advertisement

More Related Content

Similar to 継承辺りのもしかしたらマイナーかもしれない C#(20)

Advertisement

Recently uploaded(20)

継承辺りのもしかしたらマイナーかもしれない C#

  1. / 31 【オンライン】2023年! C# Tokyo イベント 石崎 充良 継承辺りのもしかしたら マイナーかもしれない C# 1
  2. / 31 自己紹介 石崎 充良 ( @mishi_cs ) C# Tokyo コミュニティ管理メンバー GitHub: https://github.com/m-ishizaki blog: https://rksoftware.hatenablog.com/ 2
  3. / 31 今回は継承のお話し 3
  4. / 31 今日はクラスの継承のお話です クラスの継承、 使っていますか? インターフェイスの実装でなくて。 4
  5. / 31 クラスの継承とは 5
  6. / 31 インターフェイス 6
  7. / 31 何故インターフェイスなのか? 7
  8. / 31 クラスではできない 8 埼玉なの? 群馬なの? ちなみに、できてしまうと
  9. / 31 インターフェイスでは 9 明示的なインターフェイスの実装
  10. / 31 目次  今回は継承のお話し  背景  この辺りのメソッドの実装の種類  abstract メソッド  virtual メソッド  interface の明示的な実装  interface のデフォルト実装  まとめ 10
  11. / 31 背景 11
  12. / 31 C# 11 の新機能 「ジェネリック型数値演算のサポート - インターフェイスの static virtual メンバー」 という機能が追加されました。  インターフェイスに「 static virtual 」なメンバーが定義できます  インターフェイスに「 static abstract 」なメンバーが定義できます 12
  13. / 31 こんなことができます 13
  14. / 31 virtual、abstract、interface の実装 14 完全に理解していますか? 私は正直、自信がないです。
  15. / 31 この辺りのメソッド の実装の種類 15
  16. / 31 種類 • abstract メソッド • virtual メソッド • interface の明示的な実装 • interface のデフォルト実装 16 class での仕様 interface での仕様
  17. / 31 abstract メソッド 17
  18. / 31 abstract メソッド  abstract クラスにしか定義できない  abscract クラスでは実装ができない  導出クラス (サブクラス・子クラス) では実装をしなければならない 18 プログラマによる実装漏れを言語レベルで無くしてくれる 極めて実装者への配慮にあふれた機能。 インターフェイスとテストが主流の現代ではまず見かけない。
  19. / 31 virtual メソッド 19
  20. / 31 virtual メソッド  君は導出クラス (サブクラス・子クラス) で実装してもいいし、しなくてもいい  virtual メソッドの宣言には実装が必要 20 プログラマによる実装の自由が認められた使い勝手の良い機能。 abstract ではなくこちらの方が見かける。 カスタマイズ可能な UI コンポーネントなどでは見かける。 virtual でも abstract でもない場合は
  21. / 31 interface の明示的な 実装 21
  22. / 31 インターフェイスの明示的な実装  複数のインターフェイスに同じメソッドがあった場合に、どのインターフェイスの実 装かを明示して実装できる 22 インターフェイスが違えば必要な実装は違う場合もある。 そんな時でも安心安全な機能。 人気も本当に 最高なのか? 人気は千葉に 譲るかもしれない
  23. / 31  インターフェイスの型から呼び出す 呼び出し方 23 普通の実装がある場合
  24. / 31 interface の デフォルト実装 24
  25. / 31 通常、interface メソッドは実装が必要 25
  26. / 31  インターフェイスに実装を書く  インターフェイスの型から呼び出す (実装クラスの型からは呼び出せない) デフォルト実装 26 インターフェイスに 実装がある
  27. / 31 実装クラスに実装がある場合  実装クラスの型からも呼べるようになる  インターフェイスの型から呼ばれても実装クラスの実装が呼ばれる 27 virtual メソッドに似ている。覚えやすい
  28. / 31 デフォルト実装と基底クラスの実装  インターフェイスの実装とクラスの継承をしていて、基底クラスに同じメソッドが あった場合は、基底クラスの実装が呼ばれる 28
  29. / 31 デフォルト実装の明示的な実装  インターフェイスのデフォルト実装に対して明示的な実装も可能 29
  30. / 31 まとめ 30
  31. / 31 まとめ  クラスの継承とインターフェイスの実装、完全に理解した  インターフェイスの static virtual メンバーも怖くない  ↓のコードも一目で理解できる 31
  32. / 31 ありがとうございました。 32 【オンライン】2023年! C# Tokyo イベント 石崎 充良
Advertisement