c# - 如何在单独的文件中创建类子类
问题描述
我有一个非常简单的问题,我目前有一个 DB 类,每个集合都有一个子类:
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 文件中(并将其保存到数据库中)吗?
示例(不工作):
// 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);
}
解决方案
是的,你可以这样做。但是您不表示继承Class.Subclass
,而是Subclass : Class
这样
[System.Serializable]
public class User : Data {
...
public void Add(User user){
this.users.Add(user);
}
}
我会从 Data 类中重构用户和 foos 列表。最好创建一个包含所有 Data 对象的 DataFactory 类,尤其是当您将它们用作单例时。
编辑:看起来你已经更新了这个问题。user 和 foo 不需要从您发布的这个新版本的 DB 继承。将静态列表更改为保持,您就可以开始了。
推荐阅读
- phpfox - 如何更改phpfox更改模板?
- javascript - 如何正确使用猫鼬承诺
- node.js - Firestore 不适用于 AWS Lambda
- c#-6.0 - 当有更多句子时,在 C# 6.0 中编写新的 get 和 set 属性的方法是什么?
- unity3d - Blender to Unity:将自定义碰撞器添加到低多边形样式地形
- c++ - OPENCV - 如何在 OpenCV 中使用 Haar 级联 Github xml 文件?
- suitescript - Netsuite 套件脚本 2.0
- java - 如何在 spring-integration 中停止消息?
- google-app-engine - 谷歌端点迁移到版本 2 后,参数 Named("key") Key key 未显示在 api explorer 中
- css - 如何使用 postcss 管理我网站中的托管字体?