Beginner with c# 6 (轉)

worldblog發表於2007-12-02
Beginner with c# 6 (轉)[@more@]趕出一編!請指正!
1。6 統一型別(Type system unification)
獨創了一種型別——統一系統型別(為了這個累刑,我頭疼死了。誰有更好的名字,請務必告訴
我)。總之,所有的其他型別,包括值和引用,都可以被當作統一系統型別來對待。從概念上說,
所有的型別都從它派生。這樣,其他的型別就可以使用統一系統型別的屬性和方法。包括一些“簡
單”型別,如:int。還是給個例子吧:*/
using System;
class Test
{
  static void Main() {
  Console.WriteLine(3.ToString());
  }
}
/*“3.ToString()”了的“ToString()”方法。相信學過c/c++的朋友都知道要輸出一個
數字有多麻煩,現在就省事了。再看一個:*/
class Test
{
  static void Main() {
  int i = 123;
  object o = i;  // boxing
  int j = (int) o;  // unboxing
  }
}
/* 這個像帽子戲法的例子中,從“int”轉換成“object”,又轉換回來。這樣一來,在值和引用
之間就架起了一座橋樑。這樣有什麼用呢。即興舉一個常見的例子...就min把。在c/c++中:*/
// c/c++ code

void min(int i, int j)
{
  return ((i < j) ? i : j);
}

/* 如果比較的不是int,或者說可能是int,也可能是float、double呢?可以這樣:*/

template
T min (T i, T j)
{
  return ((i < j) ? i : j)
}

/* 用c#可以:*/
void s (object a, object b)
{
  return ((i < j) ? i : j);
}

/* 我想大家一定看出來第二個例子要比較一個int和一個float的話,還需要一些轉換,而第三個
例子就可以比較所有的變數!這個靈活度簡直太大了。所以,我私以為,大家使用時一定要小心!
它在比較一個int和一個class的時候決不會報錯的。呵呵,我發現我的翻譯總是越跑越遠,總是
扣不住原文。篡改甚多,敬請原諒!

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/10752043/viewspace-987298/,如需轉載,請註明出處,否則將追究法律責任。