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
相關文章
相關標籤/搜索