www.tjgcgs88.cn-狠狠久久亚洲欧美专区不卡,久久精品国产99久久无毒不卡,噼里啪啦国语版在线观看,zσzσzσ女人极品另类

  • <strike id="qgi8o"><td id="qgi8o"></td></strike>
  • <ul id="qgi8o"><acronym id="qgi8o"></acronym></ul>
  • <li id="qgi8o"></li>
    <ul id="qgi8o"></ul>
    <strike id="qgi8o"><rt id="qgi8o"></rt></strike>
    <ul id="qgi8o"><center id="qgi8o"></center></ul>
  • <kbd id="qgi8o"></kbd>

    C#中泛型集合有什么用。 C#中泛型的作用是什么?

    滿意答案^_^坐著鵝去上班^_^5級(jí)2009-05-31 "一次編碼,多次使用",這就是引入泛型的根源。在以前的C++中稱為模板,C#泛型通過(guò)算法和數(shù)據(jù)結(jié)構(gòu)支持獨(dú)立編碼。例如,泛型列表意味著,你不必再重寫一個(gè)強(qiáng)類型集合。在本文中,作者將向你展示定義和使用泛型是多么容易的事情-請(qǐng)注意,長(zhǎng)期以來(lái)泛型一直被認(rèn)為是最高級(jí)和最困難的術(shù)語(yǔ)。 一、 簡(jiǎn)介泛型現(xiàn)在在任何一種語(yǔ)言中都被認(rèn)為是一個(gè)高級(jí)的強(qiáng)有力的術(shù)語(yǔ)。當(dāng)我在C++中第一次接觸模板時(shí),我對(duì)之有些疑惑。之后,我讀了Bjarne Stroustrop的《The Design and Evolution of C++》,才發(fā)現(xiàn)模板的使用就象C中的宏和用之來(lái)取代的簡(jiǎn)單串替換模板一樣容易。其實(shí),模板和泛型是相同的東西-盡管它們的實(shí)現(xiàn)稍微不同。 C#泛型支持在使用點(diǎn)處才定義算法及其數(shù)據(jù)類型。在C#的一些早期版本中,我們可以證明沒(méi)有泛型也可以工作,因?yàn)槊糠N類型都是派生于一個(gè)公共基類型-object。這意味著程序員可以基于object類型定義一個(gè)棧類并且把一切東西放到該棧上(因?yàn)橐磺卸寂缮趏bject)。然而,一個(gè)object棧意味著,Customer對(duì)象,Integer對(duì)象以及假想的對(duì)象都能被放置到同一個(gè)棧的實(shí)例上。結(jié)果是,開發(fā)者要子類化數(shù)據(jù)類型來(lái)把數(shù)據(jù)類型綁定到他們要與之交互的東西上去。例如,在編寫定制的商業(yè)對(duì)象時(shí),我們就建議定義派生于System.Collections.CollectionBase的強(qiáng)類型集合。原因很簡(jiǎn)單:基于object定義一切被認(rèn)為是弱類型定義。 業(yè)界的高手們?cè)跀?shù)十年前就確信強(qiáng)類型優(yōu)于弱類型,所以.NET最終支持強(qiáng)類型,這看上去是很自然的事情。強(qiáng)類型算法當(dāng)然建議類型化參數(shù)-這正是我們?cè)诜盒椭兴玫臇|西。 十幾年來(lái),我們一直在使用字母T作為類型化參數(shù)的名字。這樣,在任何泛型類使用者所提供的數(shù)據(jù)類型的地方,你都能夠找到T。使用泛型的關(guān)鍵僅僅是提供這個(gè)T。定義泛型的關(guān)鍵在于實(shí)現(xiàn)一個(gè)方法或類,并且用特定數(shù)據(jù)類型來(lái)替換掉T。 C#中的泛型支持另外一些提煉。例如,一個(gè)方法或類可以有多個(gè)參數(shù)化的類型并且C#泛型還支持WHERE約束-它用來(lái)具體要求類型化參數(shù)的類型。例如,如果一個(gè)泛型類型必須實(shí)現(xiàn)接口IDisposable,那么C#泛型是支持實(shí)現(xiàn)這一限制的。在文章的最后我們還要看一下約束問(wèn)題。 閑話少說(shuō),讓我們言歸正傳。 有些人問(wèn)我"面向?qū)ο缶幊蹋∣OP)的承諾在哪里?",我的回答是應(yīng)該從兩個(gè)方面來(lái)看OOP:你所使用的OOP和你創(chuàng)建的OOP。如果我們簡(jiǎn)單地看一下如果沒(méi)有如例如Microsoft的.NET,Borland的VCL,以及所有的第三方組件這樣的OO框架,那么很多高級(jí)的應(yīng)用程序幾乎就無(wú)法創(chuàng)建。所以,我們可以說(shuō)OOP已經(jīng)實(shí)現(xiàn)了它的承諾。不錯(cuò),生產(chǎn)好的OOP代碼是困難的并且可能是極具挫敗性的;但是記住,你不必須一定要通過(guò)OOP來(lái)實(shí)現(xiàn)你的目標(biāo)。因此,下面首先讓我們看一下泛型的使用。 列表1顯示出我們定義一個(gè)強(qiáng)類型集合的Customer對(duì)象是很容易的。 列表1 這個(gè)控制臺(tái)應(yīng)用程序包含一個(gè)Customer類和一個(gè)基于List的強(qiáng)類型集合Customers。 using System; using System.Collections.Generic; using System.Text; namespace Generics{ class Program{ static void Main(string[] args){ List customers = new List(); customers.Add(new Customer("Motown-Jobs")); customers.Add(new Customer("Fatman's")); foreach (Customer c in customers) Console.WriteLine(c.CustomerName); Console.ReadLine();}}public class Customer{ private string customerName = ""; public string CustomerName{ get { return customerName; } this.customerName = customerName;}}} 補(bǔ)充: 注意,我們有一個(gè)強(qiáng)類型集合-List-對(duì)這個(gè)集合類本身來(lái)說(shuō)不需要寫一句代碼。

    相關(guān)評(píng)說(shuō):

  • 悟飄18616845954: C#中,如何使用泛型來(lái)實(shí)現(xiàn)兩個(gè)不同類型數(shù)據(jù)的相加呢 -
    康定縣彈簧: ______ 老弟,泛型不是這么用的!泛型的作用是不同類型的數(shù)據(jù),有相似的操作,為了共享操作,這時(shí)候才用泛型!比如一個(gè)數(shù)值隊(duì)列,和一個(gè)字符串隊(duì)列,都有入隊(duì),出隊(duì)等操作,為了讓入隊(duì)和出隊(duì)操作在不同數(shù)據(jù)類型的隊(duì)列間共享,這時(shí)候才用泛型,泛型的目的并不是為了實(shí)現(xiàn)把數(shù)值和字符串加在一起的,而是為了廣泛適應(yīng)不同類型數(shù)據(jù)的相同操作的.
  • 悟飄18616845954: C#泛型給個(gè)通俗的答案!
    康定縣彈簧: ______ 泛型集合就是可以轉(zhuǎn)化任何類型的數(shù)據(jù)集合..一般用法也就是獲取DataSet數(shù)據(jù). 然后綁定到數(shù)據(jù)源控件上..
  • 悟飄18616845954: C#泛型的意義是什么? -
    康定縣彈簧: ______ 范型的意義在于免去了類型之間互相轉(zhuǎn)換的系統(tǒng)開銷,和同類方法的重載,比如,Add方法你要重載兩個(gè)方法(int和double)或者更多方法,用范型只用寫一個(gè)Add方法就可以完成int,double,float......等等的相加,再如,集合的操作,沒(méi)有往往是弱類型(object),而用范型可以直接是強(qiáng)類型,無(wú)需轉(zhuǎn)換之間的開銷,節(jié)省了資源,
  • 悟飄18616845954: C#泛型如何提高性能的 -
    康定縣彈簧: ______ 一次全告訴你吧.1.C#里的泛型是類型安全的,定義的時(shí)候使用T,D占位標(biāo)示,但是實(shí)例化一個(gè)實(shí)例的時(shí)候必須制定明確的類型,不存在類型上的轉(zhuǎn)換.2.C#的泛型性能更好,為什么呢?這個(gè)是相對(duì)使用繼承而言的,實(shí)現(xiàn)類似的功能你當(dāng)然可以使用Object作為基類,這樣你就可以什么類型都傳了,但是使用泛型,他在編譯的時(shí)候使用替換占位標(biāo)示的方式,先比之下不就是省去了裝箱和拆箱的過(guò)程嗎?
  • 悟飄18616845954: C# 集合 泛型 -
    康定縣彈簧: ______ 集合是OOP中的一個(gè)重要概念,C#中對(duì)集合的全面支持更是該語(yǔ)言的精華之一. 為什么要用泛型集合? 在C# 2.0之前,主要可以通過(guò)兩種方式實(shí)現(xiàn)集合: a.使用ArrayList 直接將對(duì)象放入ArrayList,操作直觀,但由于集合中的項(xiàng)是Object類型...
  • 悟飄18616845954: 請(qǐng)問(wèn)c#中泛型是怎么使用的? -
    康定縣彈簧: ______ 使用還是定義 使用: List<Integer> list = new List<Integer>(); list.add(new Integer()); Integer integer = list[0];
  • 悟飄18616845954: C#的泛型怎么用啊. -
    康定縣彈簧: ______ // Declare the generic class public class GenericList<T> { void Add(T input) { } } class TestGenericList { private class ExampleClass { } static void Main() { // Declare a list of type int GenericList<int> list1 = new GenericList<int>(); // Declare a list...
  • 悟飄18616845954: 什么是泛型?說(shuō)的直白點(diǎn)
    康定縣彈簧: ______ 泛型是一種特殊的類型,它把指定類型的工作推遲到客戶端代碼聲明并實(shí)例化類或方法的時(shí)候進(jìn)行. 泛型是程序設(shè)計(jì)語(yǔ)言的一種特性.允許程序員在強(qiáng)類型程序設(shè)計(jì)語(yǔ)言中編寫 體驗(yàn)泛型代碼時(shí)定義一些可變部份,那些部份在使用前必須作出指...
  • 悟飄18616845954: c#泛型集合的遍歷 -
    康定縣彈簧: ______ 有三種 很簡(jiǎn)單,給你舉個(gè)例子:1、先聲明一個(gè)Dictoinary泛型集合 創(chuàng)建一個(gè)Student類的對(duì)象Student stu=new Student()(在這個(gè)類中 有一個(gè)name屬性) Dictionary students=new Dictionary(); students.Add(stu);2、開始遍歷 (1)可以用value...
  • 悟飄18616845954: 數(shù)組與集合的區(qū)別 泛型與集合的區(qū)別
    康定縣彈簧: ______ 數(shù)組與集合的區(qū)別: 一:數(shù)組聲明了它容納的元素的類型,而集合不聲明.這是由于集合以object形式來(lái)存儲(chǔ)它們的元素. 二:一個(gè)數(shù)組實(shí)例具有固定的大小,不能伸縮.集合則可根據(jù)需要?jiǎng)討B(tài)改變大小. 三:數(shù)組是一種可讀/可寫數(shù)據(jù)結(jié)構(gòu)沒(méi)...
  • 9999国产精品欧美久久久久久| 性满足bbwbbwbbw| 精品国产美女福利到在线不卡| a级毛片无码久久精品免费| 国产亚洲欧美日韩三区电影| 国产jk白丝视频在线观看| 久久国产乱子伦精品一级| 黄片三级中文字幕在线观看| 欧美日韩人妻精品一区二区三区| GOGOGO免费高清在线|