【问题标题】:Stucture across multiple files跨多个文件的结构
【发布时间】:2016-12-12 10:01:46
【问题描述】:

我正在制作一个简单的游戏,它包含统计数据(力量、智力、魅力...)和技能(采矿、游泳、骑行...)。这些结构组织在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;
}

谢谢。

【问题讨论】:

  • 您是否有理由希望将它们定义为类型的一部分?如果您想在其他对象之间共享它们,在命名空间级别定义它们不是更有意义吗?

标签: c# class struct


【解决方案1】:

由于结构嵌套在类类型中,因此您需要在结构实例的声明前加上嵌套类名称

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

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

【讨论】:

    猜你喜欢
    • 2012-08-19
    • 1970-01-01
    • 2019-02-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-10-25
    相关资源
    最近更新 更多