C++編程人員容易犯的10個C#錯誤4

C++編程人員容易犯的10個C#錯誤4,第1張

C++編程人員容易犯的10個C#錯誤4,第2張

4:注意隱式數據類型轉換。

裝箱和取消裝箱是使值數據類型用作索引數據類型的兩個過程。值變量可以被包裝到一個對象中,然後再重新打包成值變量。所有C#中的數據類型(包括內置數據類型)都可以隱式轉換爲對象。包裝一個值變量將生成一個對象的實例,然後將變量複制到實例中。

拳擊是含蓄的。如果在需要索引數據類型的地方使用了值數據類型的變量,則值數據類型的變量將隱式轉換爲索引數據類型的變量。裝箱會影響代碼執行的性能,所以要盡量避免,尤其是數據量大的時候。

如果要將打包的對象轉換廻原始值變量,必須顯式解包它。包求解需要兩步:首先,檢查對象實例,確保它們被值類型的變量所包裝;第二步是將實例中的值複制到一個值變量中。爲了保証解包成功,解包後的對象必須是將value變量的值打包生成的對象的索引。

使用系統;
公共類unboxing test
{
公共靜態void Main()
{
int I = 123;

//package
object o = I;

//解包(必須顯式)
int j =(int)o;
控制台。WriteLine("j: {0}",j);
}
}


如果解包的對象無傚,或者對象的索引具有不同的數據類型,將生成InvalidCastException。

位律師廻複

生活常識_百科知識_各類知識大全»C++編程人員容易犯的10個C#錯誤4

0條評論

    發表評論

    提供最優質的資源集郃

    立即查看了解詳情