亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

在C#中 <> 是什么

在C#中 <> 是什么

C#
慕碼人2483693 2018-12-10 08:08:52
在C#中 <> 是什么
查看完整描述

1 回答

?
aluckdog

TA貢獻1847條經驗 獲得超7個贊

如果在運算過程中使用<>,表示是不等于。
在<>之間加入類型參數,如<int>,這是有關泛型方面的知識。
1.概述
型并不是一個全新的結構,其他語言中有類似的概念
如:C++模板就與泛型相當
泛型不僅是C#語言的一種結構,而且是CLR定義的
所以,即使泛型類是在C#中定義的,也可以在Visual Basic中用一個特定的類型實例化該泛型

2.泛型的優點
(1)性能
System.Collections —— 非泛型集合類
System.Collections. Generic —— 泛型集合類

對值類型使用非泛型集合類,在把值類型轉換引用類型,和把引用類型轉換為值類型時,需要進行裝箱和拆箱操作

[知識點]裝箱和拆箱
.NET很容易把值類型轉換引用類型,所以可以在需要對象(對象是引用類型)的任意地方使用值類型
例如,int可以賦予一個對象
從值類型轉換為引用類型稱為裝箱。如果方法需要把一個對象作為參數,而且傳送了一個值類型,裝箱操作就會自動進行

另一方面,裝箱的值類型可以使用拆箱操作轉換為值類型。在拆箱時,需要使用類型轉換運算符

裝箱和拆箱操作很容易使用,但性能損失比較大,迭代許多項時尤其如此

而通過使用泛型,如:
System.Collections.Generic命名空間中的List<T>類不使用對象,而是在使用時定義類型
List<int> list = new List<int>();

List<T>類的泛型類型定義為int,所以int類型在JIT編譯器動態生成的類中使用,不再進行裝箱和拆箱操作

(2)類型安全
(3)二進制代碼的重用
更好地重用二進制代碼。泛型類可以定義一次,用許多不同的類型實例化。而不需要像C++模板那樣訪問源代碼
泛型類型可以在一種語言中定義,在另一種.NET語言中使用
(4)泛型類的定義會放在程序集中,所以用某個類型實例化泛型類不會在IL代碼中復制這些類
但在JIT編譯器把泛型類編譯為內部碼時,會給每個值類型創建一個新類;引用類型共享同一個內部類的所有實現代碼
(5)命名約定
泛型類型的名稱用字母T作為前綴
如沒有特殊的要求,泛型類型允許用任意類替代,且只使用了一個泛型類型,就可以用字符T作為泛型類型的名稱
如泛型類型有特定的要求(比如:必須實現一個接口或派生于基類),或者使用了兩個或多個泛型類型,那么就應給泛型類型使用描述性的名稱



查看完整回答
反對 回復 2018-12-20
  • 1 回答
  • 0 關注
  • 3727 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號