達可達與我
我與達可達
posts - 36, comments - 25, trackbacks - 0
我的連結
藍色小舖
小舖部落格
Home
Contact
Syndication
Login
News
每月文章
December, 2007 (1)
November, 2007 (3)
October, 2007 (11)
September, 2007 (1)
April, 2007 (4)
March, 2007 (6)
February, 2007 (5)
January, 2007 (2)
December, 2006 (3)
隨筆分類
C#
(rss)
JavaScript
(rss)
SQL
(rss)
生活隨筆
(rss)
影像集
小舖Blog圖片
My New Blog
vlog 168
編程一路發
(rss)
Sunday, October 07, 2007
三則簡單的 C# 考題 (解答)
在之前發表了一篇文章 "
三則簡單的 C# 考題
",主要是要建立一些正確的基本觀念,看你答對了幾題?^_^
第一題:
public static void Main() { try { double a = 1; double b = 0; double c = a / b; Console.WriteLine(c); } catch (DivideByZeroException ex) { Console.WriteLine("catch DivideByZeroException"); } catch (Exception ex) { Console.WriteLine("catch Exception"); } // 結果為....正無窮大 Double.PositiveInfinity // 浮點數允許正負無限大,您打對了嗎 ^_^ }
第二題:
class Program { public int GetNum() { int a = 1; int b = 0; try { return a / b; } catch { return -1; } finally { return 0; } } public static void Main() { Program p = new Program(); Console.WriteLine(p.GetNum()); } // 第二題的結果為什麼呢.... -1 還是 0 ???????? // 答案是.................. 不是 -1 也不是 0。.....因為Compile 會發生錯誤。 // 錯誤訊息為 "程式控制權不能從 finally 子句的主體離開" ^_^ }
第三題:
class Program { public int GetNum() { int ret = 1; try { return ret; } catch { return 0; } finally { ret++; } } public static void Main() { Program p = new Program(); Console.WriteLine(p.GetNum()); } //第三題的答案,回傳之後,finally再去指定變數值....是否會影響 return 的值呢? //答案是不會的..因為 ret 為數值型態 by value, //在return之後再去改變數值,並不會影響其結果(by value 各自獨立..) }
第三題補充:
class Program { //自訂物件 public class RetObject { public int Id; public string Name; public override string ToString() { return String.Format("Id:{0},Name:{1}", this.Id, this.Name); } } //取得物件 public RetObject GetObj() { RetObject o = new RetObject(); try { o.Id = 100; o.Name = "Bill"; return o; } catch { return null; } finally { o.Id = 101; o.Name = "Marry"; } } public static void Main() { Console.WriteLine(p.GetObj()); } //承第三題,如果今天回傳的是 By Ref 的物件類型,是否會影響最後 return 物件的結果呢? //最後印出來的會是 Bill 還是 Marry 呢? //答案.....finally再去動作是會影響的...結果是 101, Marry... //我想大家都猜的到....因為同一個物件參考,會互相影響....
posted @
11:50 AM
|
Feedback (3)