2016-08-05 3 views
1

私はStats(強さ、知性、カリスマ...)とスキル(鉱山、泳ぐ、乗る...)を持つシンプルなゲームを作っています。これらの構造は、クラスTypesで編成されています。複数のファイルにまたがる構造

すべてのファイルでこれらの構造に到達したいと考えています。 C++ではクラスをインクルードしてstruct Statsを使用することができますが、C#では同じことをすることはできません。

これを行う方法はありますか?

これは私の単純化されたコード

public class Types{ 
    public struct stats{ 
     float str; 
     float con; 
     float inte; 
    } 

    public struct skill{ 
     float mining; 
    } 
} 

public class NPC{ 
    stats baseStats; 
    skill skills; 
    string name; 
    float hunger; 
    float necessity; 
    short hp; 
} 

おかげです。

+1

タイプの一部として定義する理由はありますか?それらを他のオブジェクトにまたがって共有したい場合は、名前空間レベルでそれらを定義する方が理にかなっていませんか? – David

答えて

3

あなたが必要な別の名前空間との間に、これらのタイプのを使用する必要がある場合、構造体は、

public class NPC 
{ 
    Types.stats baseStats; 
    Types.skill skills; 
    string name; 
    float hunger; 
    float necessity; 
    short hp; 
} 

今、あなたは、ネストクラス名を構造体のインスタンスの宣言の前に付ける必要があるクラスタイプ内にネストされているのでファイルの先頭に適切なものを追加してください。

namespace MyTypes 
{ 
    public class Types 
    { 
     public struct stats 
     { 
      float str; 
      float con; 
      float xxx; 
     } 

     public struct skill 
     { 
      float mining; 
     } 
    } 
} 
..... 


using MyTypes; 
namespace MyNPC 
{ 
    public class NPC 
    { 
     Types.stats baseStats; 
     Types.skill skills; 
     string name; 
     float hunger; 
     float necessity; 
     short hp; 
    } 
} 

タイプが異なるプロジェクトである場合はまた、あなたが宣言が含まれている相対的なプロジェクトへの参照を追加する必要があるファイル。

+0

それは、ありがとう! – Ollegn

関連する問題