C# - 构造函数 - 更改处理程序对象
C# - constructor - change handler object
我有一些示例代码:
class SomeClass{
public static List<SomeClass> AllElements = new List<SomeClass>;
public int id;
public SomeClass(int element_id){
SomeClass foundedElements = AllElements.Find( x => x.id == element_id);
if( foundedElements == null){
// Do some stuff
}
else{
// I found element
// I need take this found element and set "this"
// like...:
//this = foundedElements;
}
}
}
如何将构造函数中的 "this" 对象设置为同一 class 中的另一个对象?
我需要它来创建一个 class,我在项目中有 1 个此 ID 的实例。
我可以创建一些静态方法,例如:
public static SomeClass Register(int id){
SomeClass foundedElements = AllElements.Find( x => x.id == element_id);
if( foundedElements == null){
// run constructor
// and set contructor like private member
}
else{
return foundedElement;
}
}
但是这个解决方案对我来说不是很好。我在构造函数中需要它。
编辑:
在构造函数中,我需要重写自身...
喜欢:
this = someClassObject;
您无法将 class 的实例从自身内部更改为自身的新实例。如上所述,解决此问题的方法是使用静态工厂方法。
另一种可能性是创建第二个 class 负责管理此集合。
我有一些示例代码:
class SomeClass{
public static List<SomeClass> AllElements = new List<SomeClass>;
public int id;
public SomeClass(int element_id){
SomeClass foundedElements = AllElements.Find( x => x.id == element_id);
if( foundedElements == null){
// Do some stuff
}
else{
// I found element
// I need take this found element and set "this"
// like...:
//this = foundedElements;
}
}
}
如何将构造函数中的 "this" 对象设置为同一 class 中的另一个对象?
我需要它来创建一个 class,我在项目中有 1 个此 ID 的实例。
我可以创建一些静态方法,例如:
public static SomeClass Register(int id){
SomeClass foundedElements = AllElements.Find( x => x.id == element_id);
if( foundedElements == null){
// run constructor
// and set contructor like private member
}
else{
return foundedElement;
}
}
但是这个解决方案对我来说不是很好。我在构造函数中需要它。
编辑: 在构造函数中,我需要重写自身... 喜欢:
this = someClassObject;
您无法将 class 的实例从自身内部更改为自身的新实例。如上所述,解决此问题的方法是使用静态工厂方法。
另一种可能性是创建第二个 class 负责管理此集合。