程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> .NET網頁編程 >> .NET實例教程 >> C#統一系統類型(Type system unification)

C#統一系統類型(Type system unification)

編輯:.NET實例教程
c#獨創了一種類型——統一系統類型(為了這個累刑,我頭疼死了。誰有更好的名字,請務必告訴
我)。總之,所有的其他類型,包括值和引用,都可以被當作統一系統類型來對待。從概念上說,
所有的類型都從它派生。這樣,其他的類型就可以使用統一系統類型的屬性和方法。包括一些“簡
單”類型,如:int。還是給個例子吧:*/
using System;
class Test
{
  static void Main() {
    Console.WriteLine(3.ToString());
  }
}
/*“3.ToString()”調用了object的“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<class T>
T min (T i, T j)
{
  return ((i < j) ? i : j)
}

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

/* 我想大家一定看出來第二個例子要比較一個int和一個float的話,還需要一些轉換,而第三個
例子就可以比較所有的變量!這個靈活度簡直太大了。所以,我私以為,大家使用時一定要小心!
它在比較一個int和一個class的時候決不會報錯的。 
  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved