跨多个文件结构

时间:2016-08-05 22:25:46

标签: c# class struct

我制作了一款简单的游戏,其中包含Stats(力量,智力,魅力......)和技能(挖掘,游泳,骑行......)。这些结构在班级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; } 中组织。

我希望在所有文件中覆盖这些结构。在C ++中,我可以只包含该类并使用struct Stats,但我不能在C#中执行相同的操作。

有没有办法让这项工作?

这是我的简化代码

beforeEach(inject(function ($injector) {
 yourService = $injector.get('yourService');
})

感谢。

1 个答案:

答案 0 :(得分: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;
    }
}

此外,如果类型在不同的项目文件中,则需要添加对包含声明的相对项目的引用。