跨多个文件的结构

本文关键字:结构 文件 | 更新日期: 2023-09-27 18:01:15

我正在制作一个简单的游戏,它有Stats(力量、智力、魅力…(和Skills(采矿、游泳、骑行…(。这些结构组织在类Types中。

我想在所有文件中找到这些结构。在C++中,我可以只包含类并使用structStats,但在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;
}

谢谢。

跨多个文件的结构

因为structs嵌套在类Types中,所以需要在structs实例的声明前面加上嵌套类名

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

现在,如果需要在不同的名称空间之间使用这些类型,则需要在文件开头添加适当的using。

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;
    }
}

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