.net 反序題目的詳細解答第2/2頁
更新時間: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,展示,寫入,卻沒有“拋出異?!钡南敕āM?,即使在題目中已經(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最大下標");
}
while (end > begin)
{
int temp = array[begin];
array[begin] = array[end];
array[end] = temp;
begin++;
end--;
}
}
相關(guān)文章
asp.net Accee數(shù)據(jù)庫連接不穩(wěn)定解決方案
我最最進做了個網(wǎng)站,我是用VS2005 + Access 數(shù)據(jù)庫連接,可以我在連接的時候總是出現(xiàn)連接不穩(wěn)定的情況,同樣的代碼,一個字也沒改,就是連接不上,但是有的又連接的上。真是郁悶,真是弄死人。2009-07-07
DataList中TextBox onfocus調(diào)用后臺void靜態(tài)方法及獲取相應(yīng)行數(shù)
DataList中我放了一個TextBox 現(xiàn)在的問題是當我光標放到TextBox上的時候。如果讓onfocus調(diào)用后臺某一個void靜態(tài)方法并且在靜態(tài)方法里邊獲取光標相應(yīng)的DataList的相應(yīng)行數(shù),本文介紹如何實現(xiàn),感興趣的朋友可以了解下2013-01-01
asp.net core下給網(wǎng)站做安全設(shè)置的方法詳解
這篇文章主要給大家介紹了關(guān)于asp.net core下給網(wǎng)站做安全設(shè)置的相關(guān)資料,文章通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2018-07-07
asp.net 使用ObjectDataSource控件在ASP.NET中實現(xiàn)Ajax真分頁
ASP.NET 3.5中新增加的ListView控件是一個用于頁面數(shù)據(jù)綁定和界面布局的非常棒的控件,它在ASP.NET 2.0 GridView的基礎(chǔ)上做了很多改進,用戶在使用時可以控制的元素更多,開發(fā)時的靈活性更大了,個人覺得ListView在使用時比DataGrid和GirdView更加順手。2009-11-11
ASP.NET MVC 3仿Server.Transfer效果的實現(xiàn)方法
這篇文章主要介紹了ASP.NET MVC 3仿Server.Transfer效果的實現(xiàn)方法,需要的朋友可以參考下2015-10-10

