私はいくつかのタイプの "建物"のための一定の値の束を持っています、それらのサイズは固定されています(彼らが保持する3Dモデルのため)。C# - 定数フィールドを宣言しますが、インターフェイスで整理しますか?
基本クラス、インターフェイス、抄録について調べてみましたが、概念を完全に把握することはできませんでした。しかし、私はインターフェイスを使って共通のフィールドを持つクラスを「整理」するという考えが本当に好きでした。この場合、sizeXとsizeYは、すべてのビルディングクラスで共有されるフィールドのタイプです。
public static class BuildingProperties {
public class House
{
public const int sizeX = 4;
public const int sizeY = 4;
}
public class House1
{
public const int sizeX = 6;
public const int sizeY = 6;
}
public class Commercial
{
public const int sizeX = 10;
public const int sizeY = 10;
}
}
各クラスのコンストラクタを必要とせずに、このためのインターフェイスを実装する方法はありますか? (私は別のフィールドを追加する(例えば、「高さ」)を必要に応じて、そう:)
public void program()
{
int sizeX = BuildingProperties.House.sizeX;
}
し、将来の使用のためのように、私は、コンパイラをしたいと思い、必要に応じて単純にこれらの定数を呼びかけたいと思いますエラーをスローし、高さ 『値「ちょっと!あなたはHouse1を与えるために忘れてしまった』と言う!
このようなものは、誰かがあなたが単に2ゲッターを宣言するインターフェイスを作成することができますか?
静的なサブクラス(例:ハウス)だけを宣言したらどうでしょうか? –
私の前のコメントは、上記のプログラムの期待される構文を考慮しました。コンパイラーが 'House1の高さの値なし'というエラーをスローするには、インターフェースまたは基本クラスを作成し、それをモデルで継承する必要があります。その後、静的プロパティをコンストラクタでオーバーライドまたは指定することができないので、これらのクラスのインスタンスを初期化する必要があります –
パブリックフィールドを使用しない - getterのみのプロパティを使用してください!インターフェースの中でそれらを使うこともできます。 – JeffRSon