最近学了一点Unity,用C#写代码,其实之前也写过一点windows原生,但主要使用Datastore和文件操做,早就忘了。windows
在Java里遇到键值对的时候,通常顺手就会建立一个Map,并且Map是个接口,实例一般是一个HashMap,相似下面这样:数组
private Map<String, String> userMap = new HashMap <String, String>();
到了C#里,对应Map的结构叫Dictionary,一般实例也是这个类型,相似这样:code
private Dictionary<string,string> userDict =new Dictionary<string, string>();
(注意:Java 里字符串是个对象,而C#里字符串是个基本类型,因此是不能等于null的,一般使用string.IsNullOrEmpty()方法,判断字符串是否为空)对象
具体使用上,Java里根据key获取value,是使用get方法,若是没取到,返回null:索引
String value = userMap.get("xxx"); if (value=null){ return; } //Do something with value
但C#不行,它是用索引符号(相似数组)来获取值的,一旦key不存在,就会抛出异常,因此,必须先检查key,以下:接口
if (!userDict.ContainsKey("xxx") { return; } string value = userDict["xxx"]; //Do something with value