日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > C# >内容正文

C#

C#中什么是泛型

發布時間:2023/12/1 C# 31 豆豆
生活随笔 收集整理的這篇文章主要介紹了 C#中什么是泛型 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
所謂泛型是指將類型參數化以達到代碼復用提高軟件開發工作效率的一種數據類型。
一種類型占位符,或稱之為類型參數。我們知道一個方法中,一個變量的值可以作為參數,但其實這個變量的類型本身也可以作為參數。泛型允許我們在調用的時候再指定這個類型參數是什么。在.net中,泛型能夠給我們帶來的兩個明顯好處是——類型安全和減少裝箱、拆箱。
  例如:通常一個方法或過程的簽名都是有明確的數據類型的。
  如 :
  public void ProcessData(int i){}
  public void ProcessData(string i){}
  public void ProcessData(decimal i){}
  public void ProcessData(double i){}
  等。
  這些方法的簽名中的:int ,string,decimal,double 都是明確的數據類型,程序員訪問這些方法的過程中需要提供提定類型的參數:
  ProcessData(123);
  ProcessData("abc");
  ProcessData("12.12")
  而如果我們將int ,string,decimal,double這些類型也當成一種參數傳給方法的時候方法的定義便是這樣:
  public void ProcessData<T>(T i){} //T是int ,string,decimal,double這些數據類型的指代
  用戶在調用的時候便成了這樣:
  ProcessData<string>("abc");
  ProcessData<int>(123);
  ProcessData<double>(12.23);
  這與通常的那些定義的最大區別是,方法的定義實現過程只有一個。但是它具有處理不同的數據類型數據的能力。
  C# 2.0中有如List<>等泛型對象都具有此特性。
  具有泛型機制的軟件開發平臺及語言
  .Net 平臺 2.0及以上版本
  JAVA 5及以上版本
  泛型的好處:
  泛型是c#2.0的一個新增加的特性,它為使用c#語言編寫面向對象程序增加了極大的效力和靈活性。它允許程序員將一個實際的數據類型的規約延遲至泛型的實例被創建時才確定。泛型為開發者提供了一種高性能的編程方式,能夠提高代碼的重用性,并允許開發者編寫非常優雅的解決方案。

數據層:
public List<libs.Model.Artitle> GetAllArt()
{
List<libs.Model.Artitle> list = new List<Artitle>();

string sqlconn = System.Configuration.ConfigurationSettings.AppSettings["sqlconn"];
SqlConnection conn = new SqlConnection(sqlconn);
string sqlstr = "select titleid,Title,author,company,Uploaddate,isVidate,conimages,content from writings order by titleid asc";
SqlCommand cmd = new SqlCommand (sqlstr,conn);

try
{
conn.Open();
SqlDataReader reader = cmd.ExecuteReader();
while (reader.Read())
{
libs.Model.Artitle artles = new Artitle();
artles.Titleid = int.Parse(reader["titleid"].ToString());
artles.Title = reader["title"].ToString();
artles.Uploaddate = DateTime.Parse(reader["Uploaddate"].ToString());
list.Add(artles);
}
}
catch (Exception ex)
{
throw new Exception(ex.Message);
}
finally
{
conn.Close();
}
return list;
}
邏輯層:
public List<Artitle> GettitleAll()
{
return new libs.DAL.ArtileAccess().GetAllArt();
}
web層調用:
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
this.GetallArt();

}
}
public void GetallArt()
{
libs.Log.Artitless atrlesst = new libs.Log.Artitless();
this.Repeater1.DataSource = atrlesst.GettitleAll(); //或者直接調用數據庫層:
//this.Repeater1.DataSource = new libs.DAL.ArtileAccess().GetAllArt();
this.Repeater1.DataBind();
}

泛型較為廣泛地被討論,這里寫到的只是作為新手的入門級認識。
泛型最常應用于集合類。
泛型的一個顯而易見的優點在于可以在許多操作中避免強制轉換或裝箱操作的成本或風險,拿ArrayList這個集合類來說,為了達到其通用性,集合元素都將向上轉換為object類型,對于值類型,更是有裝箱拆箱的成本:
static void Main(string[] args)
{
ArrayList al = new ArrayList();
al.Add(1);
}
在IL中是:
IL_0008: ldc.i4.1
IL_0009: box [mscorlib]System.Int32
IL_000e: callvirt instance int32 [mscorlib]System.Collections.ArrayList::Add(object)
box操作就是裝箱,具體過程是把值類型從棧中彈出,放入堆中,同時把在堆中的地址壓入到棧中,頻繁出現這樣的操作,成本比較大。

所以在2.0中,遇到以上的應用,應該使用泛型集合類List<T>:
static void Main(string[] args)
{
List<int> l = new List<int>();
l.Add(1);
}

另一個比較常用的泛型集合類是Dictionary<T,T>,用于保存鍵值對:
static void Main(string[] args)
{
Dictionary<int, string> dict = new Dictionary<int, string>();
dict.Add(1, "SomeBook1");
dict.Add(2, "SomeBook2");
dict.Add(3, "SomeBook3");

Console.WriteLine(dict[2]);//output:SomeBook2
dict[2] = "SomeCD1";//modify
Console.WriteLine(dict[2]);//output:SomeCD1

dict.Remove(2);//delete

foreach (KeyValuePair<int, string> kv in dict)
{
Console.WriteLine("Key = {0}, Value = {1}",kv.Key, kv.Value);
}
}

轉載于:https://www.cnblogs.com/Nine4Cool/p/4249159.html

總結

以上是生活随笔為你收集整理的C#中什么是泛型的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 天天爽夜夜爽夜夜爽精品视频 | 国产精品www. | 亚洲不卡中文字幕无码 | 人人妻人人澡人人爽人人dvd | 男生插女生的视频 | av鲁丝一区鲁丝二区鲁丝 | 色窝窝无码一区二区三区成人网站 | 色94色欧美sute亚洲线路二 | 欧美性受xxx | 亚洲欧美国产高清va在线播放 | 欧美69囗交视频 | 欧美.www| av黄色网 | 欧美日韩在线不卡 | 黄色一级片免费在线观看 | 最全aⅴ番号库网 | 亚洲一卡二卡在线观看 | 日本伦理一区二区 | 亚洲精品小视频在线观看 | 男女床上拍拍拍 | 天堂中文在线最新 | 韩国在线不卡 | 久久久久综合 | 青娱乐激情 | 特及毛片 | 国产探花一区 | 国产网红女主播精品视频 | 在线观看av片 | 亚洲天堂最新 | 色网站在线免费观看 | 国产精选毛片 | 91涩漫成人官网入口 | 久久久久亚洲av无码专区桃色 | 亚洲精品乱码久久久久久蜜桃动漫 | 911香蕉视频 | 爆操av | 日韩一区二区不卡 | mm131丰满少妇人体欣赏图 | 99热思思 | 日本乱论视频 | 黄色av观看 | 成人动漫在线观看视频 | 黄瓜视频色版 | 日韩一区中文 | 欧美三根一起进三p | 国产aⅴ精品 | 丰满大肥婆肥奶大屁股 | 亚洲国产网站 | 久久精品欧美一区 | 国产影视一区二区三区 | 中文精品在线 | 欧美撒尿777hd撒尿 | 国内精品偷拍视频 | 韩国三级与黑人 | 永久av在线 | 欧美14sex性hd摘花 | 中文字幕一区二区免费 | 亚洲精品女人 | 欧美日韩一级大片 | 肉嫁高柳在线 | 美女视频黄a视频全免费观看 | 日韩手机在线观看 | 亚洲4438 | 欧美视频日韩视频 | 久久艹影院 | 日日夜夜操操 | 国产成人精品无码免费看81 | 超碰免费公开 | 亚洲一区二区三区高清 | a毛片在线免费观看 | 国产91精品欧美 | 粗大黑人巨茎大战欧美成人免费看 | 一级特黄aa大片免费播放 | 欧美一级做a爰片免费视频 成人激情在线观看 | 色秀av | 国产精品成人一区二区三区 | 色在线看 | 一级国产黄色片 | 欧美精品免费一区二区 | 凹凸视频一区二区 | 亚洲午夜精品视频 | 美国式禁忌1980 | 国内自拍真实伦在线观看 | 国产女主播一区二区 | 一区二区啪啪啪 | 黑人无套内谢中国美女 | 中文字幕天堂av | 中文字幕福利视频 | 黄色综合网站 | 中文字幕网站 | 午夜av不卡| 久久久久九九九 | 久久久久国产免费 | 在线看片资源 | 无套内谢少妇毛片 | 99视频99| 午夜aaa | 神马影院午夜伦理片 | 久久草精品 |