突然ですか、「DictionaryのValueにクラスをぶちこみたい!」というわけで。。。
…クラスとかで分けなくてもいいんじゃね?というのは大いにわかる
今回は私の大好きなナガノさんのキャラクター、ちいかわとハチワレちゃんの名前を取得します。
Dictionary<int, INagano> NaganoCharacter = new Dictionary<int, INagano>()
{
{1 , new Chiikawa()},
{2 , new Hachiware()}
};
INagano
)Chiikawa
とHachiware
)※newしないとダメだめusing System;
using System.Collections.Generic;
namespace ConsoleApp1
{
class Program
{
static void Main(string[] args)
{
//キャラクターのデータ
Dictionary<int, INagano> NaganoCharacter = new Dictionary<int, INagano>()
{
{1 , new Chiikawa()},
{2 , new Hachiware()}
};
//ユーザーに入力を促す
Console.WriteLine("住民IDをいれるんだ!!");
//ユーザーが入力
int id = int.Parse(Console.ReadLine());
//入力されたiDからキャラクターのクラスを取得
INagano character = NaganoCharacter[id];
//情報を表示
Console.WriteLine("この子の名前は" + character.Name + "!!!!!!!!!");
}
}
/// <summary>
/// キャラクターのインターフェイス
/// </summary>
public interface INagano
{
//おなまえ
public string Name { get; }
//住民ID
public int Id { get; }
}
/// <summary>
/// ちいかわクラス
/// </summary>
public class Chiikawa : INagano
{
public string Name { get; } = "ちいかわ";
public int Id { get; } = 1;
}
/// <summary>
/// ハチワレクラス
/// </summary>
public class Hachiware : INagano
{
public string Name { get; } = "ハチワレ";
public int Id { get; } = 2;
}
}
Crieitは誰でも投稿できるサービスです。 是非記事の投稿をお願いします。どんな軽い内容でも投稿できます。
また、「こんな記事が読みたいけど見つからない!」という方は是非記事投稿リクエストボードへ!
こじんまりと作業ログやメモ、進捗を書き残しておきたい方はボード機能をご利用ください。
ボードとは?
コメント