.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)文章
完美解決在ModalPopupExtender中使用CalendarExtender時被層遮擋的問題
ASP.NET AJAX Control Toolkit是一組非常不錯的基于asp.net的ajax控件,它建立在asp.net 3.0的ScriptManager組件之上,提供了很多非常實用的效果和功能。2009-11-11asp.net JavaScript插件 JavaScript Function Outliner
一個JavaScript Function Outliner插件 第四版本 支持內(nèi)嵌javascript,且可以對javascript進行壓縮2008-07-07記錄游客頁面訪問IP的簡易實現(xiàn)代碼 (asp.net+txt)
記錄游客頁面訪問IP的簡易實現(xiàn) (asp.net for notepad)2010-01-01gridview實現(xiàn)服務(wù)器端和客戶端全選的兩種方法分享
這篇文章主要介紹了gridview實現(xiàn)服務(wù)器端和客戶端全選的兩種方法,需要的朋友可以參考下2014-02-02使用VSCode開發(fā)和調(diào)試.NET Core程序的方法
這篇文章主要介紹了使用VSCode開發(fā)和調(diào)試.NET Core程序的方法,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2020-05-05