下記のTextData2をnewしたときに言語テキストをセットし、GetList()で言語を指定して取得という処理を行いたいのですが、switchのreturn data箇所でコンテキストが存在しませんというエラーがでてしまいます。
実際にはfruit以外のcaseも設定しますがここでは省いています。
また、GetList()では引数によって結果的にどの型のデータがはいるか明確でないので、このようなメソッドを作ること自体がおかしいでしょうか。
public class Fruit { public string lang { get; set; } public string apple { get; set; } public string banana { get; set; } public string grape { get; set; } } public class TextData2 { public List<Fruit> fruit_list; public void Main(string page) { dynamic data; switch (page) { case "fruit": fruit_list = new List<Fruit>() { new Fruit(){lang = "ja", apple = "りんご", banana = "ばなな", grape="ぶどう"}, new Fruit(){lang = "en", apple = "apple", banana = "banana", grape="grape"}, }; break; } } public dynamic GetList(string lang, string page) { dynamic data; switch (page) { case "fruit": data = (from l in fruit_list where l.lang == lang select l).FirstOrDefault(); break; } return data; } }
また、取得する側のコードのvar textdata2 = new TextData2("fruit");の箇所では下記画像のようなエラーがでてしまいますが原因が分からない状況です。
![(0fe89f2c8c50c3da414f04bff7ffba25.png)
//取得側 var textdata2 = new TextData2("fruit"); var fruit_list = textdata2.GetList(lang, "fruit");
追記2
色々助言をいただいて下記コードに書き直しました。
しかしまだ、下記のエラーがでてしまいます。
fruit_listはコンストラクタでセットしているはずなのですがなぜエラーがでてしまうのでしょうか。
public class TextData2 { public string Page { get; set; } public List<Fruit> fruit_list; public TextData2() { string page = Page; switch (page) { case "fruit": fruit_list = new List<Fruit>() { new Fruit(){Lang = "ja", Apple = "りんご", Banana = "ばなな", Grape="ぶどう"}, new Fruit(){Lang = "en", Apple = "apple", Banana = "banana", Grape="grape"}, }; break; } } public dynamic GetList(string lang) { dynamic data = new List<string>(); string page = Page; switch (page) { case "fruit": data = (from f in fruit_list where f.Lang == lang select f).FirstOrDefault(); break; } return data; } }
取得側のコード
var textdata2 = new TextData2() { Page = "fruit"}; var fruit_text = textdata2.GetList(lang);
回答4件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2018/05/15 00:41
2018/05/15 00:44
2018/05/15 01:06
2018/05/15 01:09
2018/05/15 01:22
2018/05/15 01:26
2018/05/15 01:46
2018/05/15 02:02
2018/05/15 02:26
2018/05/15 02:29
2018/05/15 05:15
2018/05/15 06:00