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

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

c#:在泛型類中如何訪問 約束基類 的子類對象 的獨(dú)特字段?

c#:在泛型類中如何訪問 約束基類 的子類對象 的獨(dú)特字段?

C#
白衣染霜花 2018-12-06 16:40:26
public abstract class Animal{} public class Dog:Animal{ public int Legs{ get; set;} } public class An<T>where T:Animal{ public List<T> l = new List<T>();//給v中保存Dog類型數(shù)據(jù) public void Print(){ foreach (var v in l) Console.WriteLine(l.Legs);//怎么訪問v中的Legs? } }
查看完整描述

14 回答

?
明月笑刀無情

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

你的是T是Animal,animal沒有Leg,Leg是Dog的;因此需要判斷 v is Dog 然后 (v as Dog).Leg;

除非你t直接是Dog你上面就可以直接通過了。

查看完整回答
反對 回復(fù) 2018-12-24
?
楊魅力

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

給它轉(zhuǎn)型試試?? 轉(zhuǎn)型后 看能不能得到legs這個(gè)屬性

查看完整回答
反對 回復(fù) 2018-12-24
?
寶慕林4294392

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

轉(zhuǎn)型不行,父類對象是強(qiáng)轉(zhuǎn)不了子類對象的,2樓方法完美解決,哈哈哈。謝謝解答~~

查看完整回答
反對 回復(fù) 2018-12-24
?
Smart貓小萌

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

@風(fēng)人:?是的 忘記判斷了

查看完整回答
反對 回復(fù) 2018-12-24
?
慕少森

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

不太好辦,你T類型限制在animal上了,變通點(diǎn)的做法是把dog.legs通過委托帶進(jìn)去(帶狗腿!?)

void Print(Func<T,object> printQuery)

{

  ...

  Console.WriteLine(printQuery(v));

}

查看完整回答
反對 回復(fù) 2018-12-24
?
MMMHUHU

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

這樣就是感覺挺麻煩的,如果要用到的數(shù)據(jù)更多的話就感覺好糟糕--

2樓方法覺得很好,,嘿嘿嘿,謝謝解答~~

查看完整回答
反對 回復(fù) 2018-12-24
?
UYOU

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

@風(fēng)人: 這個(gè)。。。。你泛型這樣用的姿勢不太對。

查看完整回答
反對 回復(fù) 2018-12-24
?
皈依舞

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

@Daniel Cai: 是挺別扭--剛學(xué),不太會用。。

查看完整回答
反對 回復(fù) 2018-12-24
?
阿波羅的戰(zhàn)車

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

@風(fēng)人: 泛型限制的有點(diǎn)好處就是編譯安全性,如果一強(qiáng)轉(zhuǎn)那么就失去了這個(gè)保證,而且同時(shí)增加了對實(shí)現(xiàn)的耦合度。

這里正確姿勢是提個(gè)接口,接口方法的用途就是返回狗腿雞毛啥的玩意(看你需求),Print方法繼續(xù)加泛型限制Print<V>() where V:T,ICountable (ICountable返回狗腿數(shù)量)

這樣就能在保證安全性的同時(shí)保證靈活性。

查看完整回答
反對 回復(fù) 2018-12-24
?
互換的青春

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

@Daniel Cai: 嗯嗯嗯,剛才又試了試訪問Animal兩個(gè)子類的特有的屬性,更加理解了~~

非常感謝你的指導(dǎo)!O(∩_∩)O謝謝

查看完整回答
反對 回復(fù) 2018-12-24
?
紫衣仙女

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

2l的方法是好.但是你的問題就是錯(cuò)的.

既然泛型了.就不可能還限定子類.限定子類了.還泛型干嘛.

查看完整回答
反對 回復(fù) 2018-12-24
?
九州編程

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

這個(gè)確實(shí)是,就是現(xiàn)在學(xué)到這,覺得這樣定義一個(gè)容器類挺好的:

用一個(gè)泛型數(shù)組來保存Animal類各種子類的數(shù)據(jù),就是可以定義一個(gè)An<Dog>對象來保存n個(gè)Dog類對象,也可以定義一個(gè)An<Pig>來保存n個(gè)Pig對象(Pig也是Animal的子類),因?yàn)镈og和Pig都是Animal子類,所以用泛型約束成Animal基類約束。并且在這個(gè)泛型容器類里對這個(gè)數(shù)組進(jìn)行操作。

查看完整回答
反對 回復(fù) 2018-12-24
  • 14 回答
  • 0 關(guān)注
  • 930 瀏覽

添加回答

舉報(bào)

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號

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