私はクラスを持っています。 このクラスにはContentプロパティが必要です。現在のコンテンツタイプのものである:List<IRowContent>
C# - 複雑な変数代入
他のクラスColumn
とTextContent
、ImageContent
インターフェイスIRowContent
を実装(IRowContent
インターフェイスです)。
ここで、リストに実際の「コンテンツ」(テキストまたはイメージ)を追加できます。
ただし、列とテキスト/画像を追加することもできます。しかし、行にtext/imageが含まれている場合は、別の項目を含むべきではありません。
これをサポートするためにクラス構造をどのように設計できますか?
編集:一部additionalsに関する情報: 私はhttp://en.wikipedia.org/wiki/Fluent_interface
そして、私のIDEEの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からのものです。 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;
}
}
:あなたは、一般的なごクラスを作ることができ
class TextContent : IRowContent, IColumnContent
class ImageContent : IRowContent, IColumnContent
.netインターフェイスの命名規則に気づいていますか? – ChaosPandion
Ew、接頭辞 'I'が付いていないインターフェイス - 面倒なことがあります。そして私はおそらくこれに答えるだろうが、Jon Skeetが既にデッキに入っているように見え、このコメントを入力する頃には[良い]解決策があるだろう。 –
@ブラッド:いいえ、これに関わることを計画していなかったので、先に進んで答えてください:) –