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

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

是否有可能在數組中獲取 null 而不是超出范圍的異常?

是否有可能在數組中獲取 null 而不是超出范圍的異常?

C#
慕容3067478 2022-12-24 10:23:49
bool?[,] logicTable = new bool?[width, height];for (int i = 0; i < width; ++i)   for (int j = 0; j < height; j++)             if (logicTable?[i, j - 1] == true){...}此時我得到索引超出范圍異常(因為 j-1 給出 -1)。這個表達式是否可能:logicTable?[i, j - 1]如果其中一個索引值超出范圍,如何快速返回空值?
查看完整描述

1 回答

?
小唯快跑啊

TA貢獻1863條經驗 獲得超2個贊

如果您使用標準數組(如您的示例中),這是不可能的,因為它們始終是 0 索引的,并且總是拋出越界訪問。


您可以創建自己的包裝器,null為越界情況返回,這可能通過自動提供標記值使某些算法更容易:


class SafeOutOfBoundsArray

{

    public SafeOutOfBoundsArray(bool?[,] array)

    {

        this.array = array;

    }

    bool?[,] array;

    public bool? this[int r, int c] 

    {

        get {

            if (array == null ||

                  r <0 || c < 0 || 

                  r>=array.GetUpperBound(0)|| c>=array.GetUpperBound(1))

                return null;

            return array[r,c];}

    }

}


查看完整回答
反對 回復 2022-12-24
  • 1 回答
  • 0 關注
  • 94 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號

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