欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

.net 反序題目的詳細解答

 更新時間:2009年06月13日 20:34:47   作者:  
在各種答案,以及平時面試過程中,這道題總歸會有一些非常典型的錯誤發(fā)生。其中給老趙的感覺也非常有意思,不知其中的“思路”是否如老趙猜測那樣。

常見錯誤
  在各種答案,以及平時面試過程中,這道題總歸會有一些非常典型的錯誤發(fā)生。其中給老趙的感覺也非常有意思,不知其中的“思路”是否如老趙猜測那樣。

在方法中進行輸入和輸出
  有不少朋友在代碼里放置了這樣的代碼:
復(fù)制代碼 代碼如下:

static void Reverse(int[] array, int begin, int end)
{
Console.WriteLine("請輸入xxx");
array[0] = Int32.Parse(Console.ReadLine());
...

for (int i = 0; i < array.Length; i++)
{
Console.WriteLine(i);
}
}

為什么會出現(xiàn)這種情況?老趙估計是受到了某些培訓(xùn)機構(gòu)的影響(觀察出現(xiàn)這個問題的朋友們的分布便知)。這些培訓(xùn)一再強調(diào)輸入、輸出,而沒有讓學(xué)員有任何“模塊”,“類庫”,“輔助方法”的概念。學(xué)員的觀念中,任何程序都要向用戶去索要“輸入”,并且要“輸出”,否則就不算是程序。

打印錯誤,而不是拋出異常
代碼如下:
復(fù)制代碼 代碼如下:

static void Reverse(int[] array, int begin, int end)
{
if (array == null)
{
Console.WriteLine("數(shù)組為空");
return;
}

...
}

除了和上面類似的“思維”以外,這說明有些朋友還沒有形成“拋出異?!钡挠^念。這意味著在過往的編程經(jīng)驗中,可以說完全沒有“參數(shù)校驗”的概念在頭腦里面。培訓(xùn)機構(gòu)只是一味地CRUD,展示,寫入,卻沒有“拋出異?!钡南敕?。同理,即使在題目中已經(jīng)明確寫清了是“拋出”異常,有些朋友的寫法是這樣的:
復(fù)制代碼 代碼如下:

static void Reverse(int[] array, int begin, int end)
{
try
{
// 交換數(shù)據(jù)
}
catch (Exception e)
{
Console.WriteLine(e.Message);
}
}

很明顯,他們只有“捕獲”異常的概念——自然是框架本身拋出的異?!恢皰伋觥碑惓!?

參考答案
  以下是老趙給出的參考答案:
復(fù)制代碼 代碼如下:

static void Reverse(int[] array, int begin, int end)
{
if (array == null)
{
throw new ArgumentNullException("array", "array不能為空");
}

if (begin < 0)
{
throw new ArgumentOutOfRangeException("begin", "begin不能小于0");
}

if (end < begin)
{
throw new ArgumentOutOfRangeException("end不能小于begin", (Exception)null);
}

if (end >= array.Length)
{
throw new ArgumentOutOfRangeException("end", "end超過array最大下標(biāo)");
}

while (end > begin)
{
int temp = array[begin];
array[begin] = array[end];
array[end] = temp;

begin++;
end--;
}
}

相關(guān)文章

最新評論