真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

什么是C#的泛型?怎么用?-創(chuàng)新互聯(lián)

這篇文章主要為大家詳細(xì)介紹了C#的泛型,文中示例代碼介紹的非常詳細(xì),零基礎(chǔ)也能參考此文章,感興趣的小伙伴們可以參考一下。

10年積累的成都網(wǎng)站設(shè)計(jì)、網(wǎng)站制作經(jīng)驗(yàn),可以快速應(yīng)對(duì)客戶對(duì)網(wǎng)站的新想法和需求。提供各種問(wèn)題對(duì)應(yīng)的解決方案。讓選擇我們的客戶得到更好、更有力的網(wǎng)絡(luò)服務(wù)。我雖然不認(rèn)識(shí)你,你也不認(rèn)識(shí)我。但先網(wǎng)站設(shè)計(jì)后付款的網(wǎng)站建設(shè)流程,更有青陽(yáng)免費(fèi)網(wǎng)站建設(shè)讓你可以放心的選擇與我們合作。

泛型是程序設(shè)計(jì)語(yǔ)言的一種特性。允許程序員在強(qiáng)類型程序設(shè)計(jì)語(yǔ)言中編寫(xiě)代碼時(shí)定義一些可變部分,那些部分在使用前必須作出指明。各種程序設(shè)計(jì)語(yǔ)言和其編譯器、運(yùn)行環(huán)境對(duì)泛型的支持均不一樣。將類型參數(shù)化以達(dá)到代碼復(fù)用提高軟件開(kāi)發(fā)工作效率的一種數(shù)據(jù)類型。泛型類是引用類型,是堆對(duì)象,主要是引入了類型參數(shù)這個(gè)概念。

為什么要使用泛型?通常我們?cè)陂_(kāi)發(fā)的時(shí)候會(huì)碰到這樣的情況:一個(gè)方法實(shí)現(xiàn)的功能都是一樣的(比如說(shuō)保存一個(gè)對(duì)象),但是我們傳遞的參數(shù)類型不一樣而已,如果按照一般來(lái)講都會(huì)去拷貝一份方法把傳遞的參數(shù)類型改成想要的類型。

代碼如下:

//學(xué)生實(shí)體類
public class Student
    {
        public string Stuno { get; set; }
        public string Name { get; set; }
        public string Sex { get; set; }
        public string Phone { get; set; }
        public string Addr { get; set; }

    }
    
//教師實(shí)體類
public class Teacher
    {
        public string Name { get; set; }//教師姓名
        public string Department { get; set; }//所屬科室
        public string Title { get; set; }//職稱
        //......省略
    }

    
//學(xué)生操作接口
public interface StudentDao
    {
        public void Save(Student s);
    }
//教師操作接口
public interface TeacherDao
    {
        public void Save(Teacher t);
    }
    
//學(xué)生接口實(shí)現(xiàn)
 class StudentDaoImpl:StudentDao
    {
        public void Save(Student s)
        {
            ISession session = factory.OpenSession();
            ITransaction tx;
            try {
            			tx = session.BeginTransaction();
            			session.save(s);
            			tx.Commit();
            } catch (Exception e) {
            			if (tx != null) tx.Rollback();
            			throw;
            } finally 
            {
            			session.Close();
            }
        }
    }
//教師接口實(shí)現(xiàn)
 class TeacherDaoImpl:TeacherDao
    {
        public void Save(Teacher t)
        {
            ISession session = factory.OpenSession();
            ITransaction tx;
            try {
            			tx = session.BeginTransaction();
            			session.save(t);
            			tx.Commit();
            } catch (Exception e) {
            			if (tx != null) tx.Rollback();
            			throw;
            } finally 
            {
            			session.Close();
            }
        }
    }

上面的Save方法大部分都是一樣的,除了傳進(jìn)來(lái)的實(shí)體參數(shù)類型不一樣,對(duì)于實(shí)體的基本操作(增刪改查)都可以通過(guò)泛型接口實(shí)現(xiàn),不用每個(gè)實(shí)體操作接口的實(shí)現(xiàn)再寫(xiě)一遍重復(fù)的代碼,這樣就大大提高了編程的效率,和代碼的復(fù)用率。對(duì)于上面的例子應(yīng)該如何去做呢?請(qǐng)看我下面的代碼:

//基本通用接口
public interface DaoSupport 
    {

	    void save(T entity);
    }

//泛型接口實(shí)現(xiàn)
public class BaseDaoImpl:BaseDao
{
    public void Save(B b)
    {
        ISession session = factory.OpenSession();
            ITransaction tx;
            try {
            			tx = session.BeginTransaction();
            			session.save(t);
            			tx.Commit();
            } catch (Exception e) {
            			if (tx != null) tx.Rollback();
            			throw;
            } finally 
            {
            			session.Close();
            }
    }
    
}

這樣的話就TeacherDao,StudentDao可以進(jìn)行接口繼承DaoSupport和TeacherDaoImpl,StudentDaoImp繼承接口實(shí)現(xiàn)類DaoSupportImpl類就可以公用那些功能方法了。是不是很簡(jiǎn)單,很好用?!

//老師接口類
public Interface TeacherDao:DaoSupport
{
    ////這里可以進(jìn)行教師類特有操作的定制實(shí)現(xiàn)
}
//老師接口實(shí)現(xiàn)類
public class TeacherDaoImpl:DaoSupportImpl,TeacherDao
{
    //這里可以進(jìn)行教師類特有操作的定制實(shí)現(xiàn)
}


//學(xué)生接口
public interface StudentDao:DaoSupport
{
    //這里可以進(jìn)行學(xué)生類特有操作的定制
}
//學(xué)生接口實(shí)現(xiàn)
public class StudentDaoImpl:DaoSupportImpl,StudentDao
{
    //這里可以進(jìn)行學(xué)生類特有操作的定制實(shí)現(xiàn)
}

總結(jié):

   1.泛型類似于一個(gè)類型占位符(自己這么理解),在接口里不進(jìn)行詳細(xì)的聲明,只是給類型占一個(gè)位置

   2.在具體到某一個(gè)操作對(duì)象時(shí)把參數(shù)T換成你要操作對(duì)象的類型,那么這個(gè)操作類就是正對(duì)于該類的操作類實(shí)例。極大的提高了編程效率和代碼復(fù)用。

   3.DaoSupport里面所放置的方法是任何一個(gè)類型實(shí)體對(duì)象都有的操作,比如基本的增刪改查,就是那些可以被公用的方法代碼抽取成公共的基接口類。

   4.如果在DaoSupport中實(shí)現(xiàn)的方法中不能滿足業(yè)務(wù)需要,那么在具體實(shí)體操作類中可以定制自己特有的方法。比如:教師類中要進(jìn)行多條件查詢等。

以上就是C#泛型的詳細(xì)內(nèi)容了,看完之后是否有所收獲呢?如果想了解更多相關(guān)內(nèi)容,歡迎關(guān)注創(chuàng)新互聯(lián)網(wǎng)站制作公司行業(yè)資訊!

創(chuàng)新互聯(lián)www.cdcxhl.cn,專業(yè)提供香港、美國(guó)云服務(wù)器,動(dòng)態(tài)BGP最優(yōu)骨干路由自動(dòng)選擇,持續(xù)穩(wěn)定高效的網(wǎng)絡(luò)助力業(yè)務(wù)部署。公司持有工信部辦法的idc、isp許可證, 機(jī)房獨(dú)有T級(jí)流量清洗系統(tǒng)配攻擊溯源,準(zhǔn)確進(jìn)行流量調(diào)度,確保服務(wù)器高可用性。佳節(jié)活動(dòng)現(xiàn)已開(kāi)啟,新人活動(dòng)云服務(wù)器買多久送多久。


標(biāo)題名稱:什么是C#的泛型?怎么用?-創(chuàng)新互聯(lián)
分享路徑:http://weahome.cn/article/dgcsds.html

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部