亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

為什么具有 1 和 2 秩的非零基礎數組具有不同的類型?

為什么具有 1 和 2 秩的非零基礎數組具有不同的類型?

PHP
蕪湖不蕪 2024-01-20 22:30:02
.Net 具有用于非零基礎數組的特殊內部類型。C# 語言沒有此類型的語法,因此無法強制轉換為此類型。但是 2d 非從零開始的數組具有普通數組類型。我想知道為什么只有一維數組有特殊類型?var array1 = (int[]) Array.CreateInstance( typeof( int ), new[] { 6 }, new[] { -1 } ); // System.InvalidCastException : Unable to cast object of type 'System.Int32[*]' to type 'System.Int32[]'var array2 = (int[,]) Array.CreateInstance( typeof( int ), new[] { 6, 6 }, new[] { -1, -1 } ); // it works
查看完整描述

1 回答

?
神不在的星期二

TA貢獻1963條經驗 獲得超6個贊

從 0 開始的一維數組很特殊。它是一個“向量數組”。它們由 CLR 進行了大量優化。

任何不是從 0 開始或不是一維的數組都不是向量數組。
因此,an 不是向量數組,因此第二次強制轉換有效。
并且是真正不同的類型。int[,]int[*]int[]


查看完整回答
反對 回復 2024-01-20
  • 1 回答
  • 0 關注
  • 222 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號