如何在单独的文件中创建类子类

时间:2019-05-01 13:02:37

标签: c# class unity3d

我有一个非常简单的问题,我目前有一个DB类,每个Collections都有一个子类:

public class DB: MonoBehaviour {
  // List of items
  public static List<DB.User> Users = new List<DB.User>();
  public static List<DB.Foo> Foos = new List<DB.Foo>();

  public static DB instance;

  // Use this for initialization
  void Awake()
  {
      if (DB.instance == null)
      {
        DB.instance = this;
      }
      else
      {
        Destroy(this.gameObject);
      }
  }

  // Defs
  [System.Serializable]
  public class User {
    public string name;
    public User(name) {
      this.name = name;
    }
  }
  [System.Serializable]
  public class Foo {
    public int bar;
    /* ... */ 
  }

  // Method
  public static Add (DB.User user) {
    DB.instance.Users.Add(user);
  }
  public static Add (DB.Foo foo) {
    DB.instance.Foos.Add(foo);
  }
}

但是我可以将有关用户的所有内容移到db-user.cs文件中(并将其保存到DB中)吗?

示例(不起作用):

// Define the User class
[System.Serializable]
public class static DB.User {
    public string name;
    /* ... */ 
} 
// Add a function to DB: 
public static DB.Add (DB.User user) {
  DB.instance.Users.Add(user);
}

1 个答案:

答案 0 :(得分:-2)

是的,您可以这样做。但是您不表示使用Class.Subclass继承,而是使用Subclass : Class

[System.Serializable]
public class User : Data {
    ...

public void Add(User user){
    this.users.Add(user);
    }
}

我将从Data类中重构用户和foos的列表。最好创建一个包含所有Data对象的DataFactory类,尤其是在将它们作为单例使用时。

编辑:看起来您已经更新了问题。用户和foo无需从您发布的新数据库版本继承。更改要保留的静态列表,一切就好了。