C 范型入門

2021-04-15 22:13:24 字數 1338 閱讀 8489

范型是microsoft.net 2.0裡面乙個新加的內容,它使得c#語言更加完美。鑑於范型這個概念炒作炒得太虛,而缺少實際例子,使得很多菜鳥搞不懂這個概念,所以我來詳細說明1個例子程式,大家就能明白了。

一、首先在vs2005環境裡面新建乙個控制台應用程式(console)

二、完成如下**:

static

void

main(

string

args)

static

void

printint(

intx)

static

void

printstring(

string

y)static

void

printall1(

intx, 

string

y)static

void

printall2

<

t>

(t x)

elseif(

typeof

(t) 

==typeof

(string

))else}

三、**說明:

void main是console控制台應用的程式入口,這個大家都應該知道吧,然後console.writeline乙個int型變數是允許的,不用x.tostring(),console.readline()目的是為了停止螢幕,方便檢視執行結果。下面說正題:

作為乙個普通的方法,printint是列印乙個數字,printstring是列印乙個字串,但是如果我需要乙個方法,既能列印數字,又能列印字串呢,那就是printall1這個方法,它同時接收整型、字串型2個變數,然後分兩行顯示。如果我的要求更苛刻,我需要乙個方法,除了既能列印數字又能列印字串之外,還必須有且只有1個引數,不考慮結構體什麼的,實現這樣子的東西,就叫范型。理智的說,普通方法傳遞不同值變數,范型方法傳遞不同型別的變數,上面這個例子,就是從范型方法。當然范型技術還能用在類上面,為了入門,先不說這些,從范型方法入手。

printall2就是范型方法,記住范型方法的書寫格式,先定義乙個未知型別t,寫在方法名後面的尖括號裡,然後引數是這個未知型別t的例項,然後方法裡面的**邏輯就是判斷這個t到底是啥型別,然後根據不同型別,做出不同判斷,執行不同**。那麼如何呼叫這個范型方法呢?我在void main裡面呼叫了printall2五次,printall2(3)指定了引數就是整型的,printall2("c")指定了引數就是字串,printall2(4)和printall2("d")沒有明說引數是啥型別,但是程式會通過引數自動判斷型別,得到正確的結果,printall2(5.5)由於范型方法裡面沒有寫該怎麼處理浮點型,所以列印error。 

C 范型演算法

泛型演算法本身不會執行容器的操作,它們只會執行於迭代器上,執行迭代器的操作。泛型演算法執行於迭代器智商而不會執行容器操作的特性帶來了乙個令人驚訝但非常必要的程式設計假定 演算法永遠不會改變底層容器的大小。演算法可能改變容器中儲存的原始的值,也可能子啊容器內移動元素,但永遠不會直接新增或刪除元素。除了...

c語言討論 范型程式設計

c語言中使用乙個變數之前要對其進行定義,那麼首先來看一下具體的乙個變數的定義。1.inta 10 2.charchartest 3.floatb 1.0 4.regest doublex 5.static int int ptr null 6.char words 10 10 1.c語言中型別及其作...

C 范型程式補充閱讀

1 下面程式通過輸入流迭代器來填充vector容器,通過輸出流迭代器來寫入 流cout 程式執行時,如果輸入為 1 2 3 4 5 q 則輸出為 1,2,3,4,5,1 2 3 4 5 請填空將程式補充完整。include include include using namespace std in...