Java程序员学习C#,在键值对处理上的差异

最近学了一点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
相关文章
相关标签/搜索