通知
すべてクリア
18/03/2021 9:33 am
techsta_unity_api\UnityProject\DataTest03_File
ManagerMain.csでローカルに保存するjsonデータを作成する際、
ManagerMain.csでローカルに保存するjsonデータを作成する際、
var sampleJson = new List<Hashtable>()
{
new Hashtable()
{
{"age", 12},
{"name", "jack"},
{"hobby", "run"}
},
new Hashtable()
{
{"age", 23},
{"name", "mary"},
{"hobby", "walk"}
},
};
という書き方をしておりますが、
なぜ、DictionaryではなくHashtableを使用するのでしょうか?
Hashtableはキーと値をobject型で指定するものらしいですが、
Dictionaryよりもこちらを使うメリットや、
使い分けをご教授いただきたいです。
なぜ、DictionaryではなくHashtableを使用するのでしょうか?
Hashtableはキーと値をobject型で指定するものらしいですが、
Dictionaryよりもこちらを使うメリットや、
使い分けをご教授いただきたいです。
また、
var sampleJson = new List<Dictionary>()
{
new Dictionary()
{
{"age", 12},
{"name", "jack"},
{"hobby", "run"}
},
new Dictionary()
{
{"age", 23},
{"name", "mary"},
{"hobby", "walk"}
},
};
上記のような書き方はなぜだめなのでしょうか?
18/03/2021 9:35 am
Dictionary
はジェネリクス型で値を指定するので、型の安全が約束されます。その代わり、宣言時に宣言した型しか代入できないので
Dictionary<string, string> dic = new Dictionary<string, string>();
dic.Add("test1" , "hoge");
dic.Add("test2", 12);
と実装してしまうと、12は
string
型ではなくint
型なのでエラーが発生してしまいます。その点
Hashtable
の場合はObject
で値を指定するので、型の安全は守られず、様々な型を値に指定しても問題無い形となっています。