第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問題,去搜搜看,總會(huì)有你想問的

這啥意思啊,關(guān)于泛型約束的

這啥意思啊,關(guān)于泛型約束的

C#
皈依舞 2018-08-02 08:05:09
編譯報(bào)錯(cuò):Error 1 Constraints for override and explicit interface implementation methods are inherited from the base method, so they cannot be specified directly 這上面的英文說啥呢?下面是代碼片段    public class SQLDataAccess : DataAccess    {        public SQLDataAccess()        {            base.virtualRoomDC = new VirtualRoomDataContext();        }      // public abstract void Add<T>(T item) where T: class; 實(shí)現(xiàn)這個(gè)方法        public  override void Add<T>(T item) where T: class        {            if (this.IsValidated<T>(item))            {                Table<T> table = base.virtualRoomDC.GetTable<T>();                bool itemAlreadyExists = table.Contains<T>(item);                table.InsertOnSubmit(item);            }        }
查看完整描述

2 回答

?
aluckdog

TA貢獻(xiàn)1847條經(jīng)驗(yàn) 獲得超7個(gè)贊

意思是說, 重寫與顯式接口實(shí)現(xiàn)方法 的約束是有基類繼承的,你不能再在子類又指定或者改變這個(gè)規(guī)則。

也就是說子類不能改變父類的 約束規(guī)則。把 public  override void Add<T>(T item) where T: class 改成 public  override void Add<T>(T item) 就OK。


查看完整回答
反對(duì) 回復(fù) 2018-08-07
?
慕哥6287543

TA貢獻(xiàn)1831條經(jīng)驗(yàn) 獲得超10個(gè)贊

這就是字面上的意思,"泛型約束"

public  override void Add<T>(T item) where T: class

比如調(diào)用這個(gè)方法時(shí),給add傳遞泛型,而這個(gè)泛型類型必須是class(一個(gè)類),這樣有個(gè)限制就不會(huì)在調(diào)用的時(shí)候誤傳別的類型的參數(shù),不會(huì)導(dǎo)致程序錯(cuò)誤。

泛型約束的引入讓程序員在操作C#類型時(shí)更加的規(guī)范和準(zhǔn)確,為了提供強(qiáng)編譯時(shí)檢查和減少類型轉(zhuǎn)換.


查看完整回答
反對(duì) 回復(fù) 2018-08-07
  • 2 回答
  • 0 關(guān)注
  • 741 瀏覽

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購(gòu)課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)