我有一個類。 這個類應該有一個Content-property。目前內容的類型爲:List<IRowContent>
C# - 複雜變量賦值
(IRowContent
是一個接口)
其他類Column
和TextContent
,ImageContent
實現接口IRowContent
。
我現在可以添加一些列到列表或真正的「內容」(文本或圖像)。
但您也可以添加列和文本/圖像。但是如果一行包含文本/圖像,它不應該包含其他項目。
我如何設計我的班級結構來支持這一點?
編輯:一些additionals的相關信息: 我想建立「流利的接口」佈局http://en.wikipedia.org/wiki/Fluent_interface
而且我愛迪就是爲了防止VisualStudio中的智能感知錯誤使用。
在這裏我的課程: 佈局有一個列表。
class Layout
{
//Attributes
public Color Background { get; set; }
public List<Column> Columns { get; set; }
public uint Margin { get; set; }
public Layout AddColumn(Column c)
{
return null;
}
public Layout SetColumnList(List<Column> c)
{
return null;
}
}
該塔具有的內容(IColumnContent)的列表。該列本身來自IRowContent。
class Column : IRowContent
{
public List<IColumnContent> Content { get; private set; }
public Column AddToContent(IColumnContent obj)
{
return null;
}
public Column SetContent(List<IColumnContent> objs)
{
return null;
}
}
同樣爲與IRowContent行:
class Row : IColumnContent
{
public List<IRowContent> Content { get; private set; }
//...
}
ImageContent和的TextContent實現兩個接口:
class TextContent : IRowContent, IColumnContent
class ImageContent : IRowContent, IColumnContent
你知道的.NET接口命名慣例? – ChaosPandion
Ew,一個不帶'I'前綴的接口 - 這可能很麻煩。我可能會回答這個問題,但它看起來像Jon Skeet已經在甲板上,並且在我輸入此評論時會有一個[更好的]解決方案。 –
@Brad:不,不打算捲入這一項,所以,儘管回答:) –