Re: [問題] 不能多重繼承的話,這問題怎麼解?
※ 引述《SDNiceBoat (NiceBoat.)》之銘言:
: 例如:
: class A:
: {
: public virtual void FunA()
: {
: //----------
: }
: }
: class B:List<A>,A ← 會出錯,因為不能多重繼承
: {
: public override void FunA()
: {
: foreach(A a in this)
: {
: a.FunA();
: }
: }
: }
: ====================================================
: 主要是希望能把B class 放進另一個B class當中
: 讓他可以變成巢狀結構
: 請問該怎麼做?
: 雖然可以用介面去解
: 但萬一裡面的東西一多的話,會有一堆重複的程式碼.....
: 實作起來跟之後要修改都會很麻煩....
你需要的是default property...
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace ConsoleApplication1
{
public class A
{
public virtual void FuncA()
{
}
}
public class B : A
{
protected List<A> _item;
// 這裡看你想這樣還是implement一堆forwarder
// 把List<A>中需要的method expose出來
public List<A> CollA
{
get
{
return this._item;
}
}
public A this[int index]
{
get
{
return this._item[index];
}
set
{
this._item[index] = value;
}
}
}
}
--
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 61.92.4.195
※ 編輯: leicheong 來自: 61.92.4.195 (08/21 23:33)
推
08/22 00:53, , 1F
08/22 00:53, 1F
→
08/22 00:54, , 2F
08/22 00:54, 2F
推
08/22 01:00, , 3F
08/22 01:00, 3F
→
08/22 09:25, , 4F
08/22 09:25, 4F
→
08/22 09:27, , 5F
08/22 09:27, 5F
→
08/22 09:28, , 6F
08/22 09:28, 6F
推
08/22 11:32, , 7F
08/22 11:32, 7F
討論串 (同標題文章)
本文引述了以下文章的的內容:
完整討論串 (本文為第 2 之 2 篇):