前提・実現したいこと
抽象クラスについてわからないことがあったので回答いただけると助かります。プログラミングは独学ですが、楽しく学んでおります。
悩んでいることは、「引数が違うが、機能がほとんど同じメソッドはどのように記述すべきか」です。具体的には、いまカードゲームの作成に挑戦しています。カードが置かれる場所として「山札」「手札」「フィールド」「墓地(捨て札を置く)」があり、それぞれに共通した機能があります(カードを追加、カードを取り除く、その場所のカードを取得等)。ただ、カードの追加に関してはそれぞれ引数が違います。墓地にカードを置く場合、引数はカードのみで済みます。一方フィールドや山札の場合、引数はカードだけでは不十分で、どこに追加したいかも必要です。しかし処理自体は非常によく似ています。
試したこと
下に載せたコードでほしい機能は実現できます。ただ、墓地にカードを加えるときAddCard()の第二引数には意味のない整数を書く必要があり、もやもやします。この書き方は正しいのでしょうか。よりわかりやすい書き方があるのであれば、ぜひ教えていただきたいです。
c#
1public abstract class Position 2{ 3 public abstract List<Card> Cards{get;} 4 public virtual void AddCard(Card card, int index) 5 { 6 //共通の機能 7 } 8 public virtual bool RemoveCard(Card card) 9 { 10 //共通の機能 11 } 12}
teratailは初めての投稿なので、間違った使い方をしていたらご指摘をよろしくお願いします。
回答4件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2020/09/11 03:27 編集
2020/09/11 05:19
2020/09/11 06:17