定义扩展列表的类时,如何从其内部方法引用列表
本文关键字:列表 内部 方法 引用 扩展 定义 | 更新日期: 2023-09-27 18:34:54
说我有public class MyClass: List<MyObjects>
。
我希望这个类有一个操作列表的内部方法,比如
void ConstructListFromJSON(){
HoweverIshouldrefertomylist = JsonUtility.FromJson<List<MyObjects>("myObjects.json");
}
我应该用什么来代替我应该的论者?我已经尝试过this
,self
和类似的,但它不起作用。当然有一种方法可以引用列表中的数据结构吗?
您无法重新分配this
,因此请清除列表并添加要添加的任何内容:
var objectsToStore = JsonUtility.FromJson<List<MyObjects>>("myObjects.json");
this.Clear();
this.AddRange(objectsToStore);
但总的来说,你真的不想继承List<T>
.请参阅为什么不从 List
public class MyClass
{
public List<YourObjects> YourObjects { get; set; }
public void ConstructListFromJSON()
{
YourObjects = JsonUtility.FromJson<List<MyObjects>("myObjects.json");
}
}
要正确生成表示 JSON 的类,请参阅将 JSON 反序列化为对象
要访问基对象,只需使用 base 关键字。但是,对于您正在展示的内容,不同的方法更有意义 - - 只需维护私有对象引用即可。
public class foo{
private List<MyObject> myList = null;
public foo(List<MyObject> l){
myList = l;
}
}
现在,类在构造时具有列表,但该列表对用户来说是私有的。 这是一种更好的设计形式。它使用组合而不是继承,并提供更松散耦合的设计。