2015年3月9日 星期一

C# value type or reference type

在C# type內有些data type常常搞錯,不知道是value type或者reference type,因為考試又被電一次,在這備註一下。
主要是reference type才有可能為null。

string testValue;
if(testVlaue != null)
{
//是否會進來
}
在這邊因為string是reference type,只是他的operator"="被改寫成是用copy value的方式,看起來很像value type。所以這邊的if不會進來。


decimal testValue;
if(testVlaue != null)
{
//是否會進來
}
decimal是value type所以這個if永遠都會進來。

DateTime testValue;
if(testVlaue != null)
{
//是否會進來
}
DateTime這個data type也是令人意外的type,他是value type,所以這個if永遠都會進來。

int? testValue;
if(testVlaue != null)
{
//是否會進來
}
這個int?就是reference type,所以這個if不會進來。

沒有留言:

張貼留言