我有這個寄存器,寄存器中的所有對象,我需要:堆棧溢出
public static class ObjectRegister
{
public static List<IObject> RegisteredObjects = new List<IObject>();
static ObjectRegister()
{
RegisteredObjects.Add(new Object1());
RegisteredObjects.Add(new Object2());
RegisteredObjects.Add(new Object3());
}
}
接下來,我有這個功能,它檢查一個列表,如果該列表中的項目通過測試,它創建了一個對象實例,並將其添加到列表:
public static List<IObject> Scan(List<parametar> list)
{
List<IObject> neededObjects = new List<IObject>();
foreach (IObject registeredObject in ObjectRegister.RegisteredObjects)
{
foreach (parametar param in list)
{
if (registeredObject.Test(param)) //returns true or false
{
neededObjects.Add(registeredObject.CreateInstance(param));
}
}
}
return connectedObjects;
}
這裏是Object1的CreateInstace方法:
public IObject CreateInstance(parametar param)
{
return new Object1(param);
}
這裏是構造函數:
public Object1(parametar newParam)
{
this.param = newParam;
}
該公司密切關注該行trowing StackOverflow的例外:
this.param = newParam;
嘗試了所有的可能性,創建一個實例,默認的構造函數,空對象等等等等,但是毫無效果... 有任何想法嗎?
感謝名單
編輯: 代碼發送到Object1類:
public class Object1: IObject
{
public parametar param
{
get { return this.param; }
set { this.param = value; }
}
internal Object1() { }
public Object1(parametar newParam)
{
this.param = newParam;
}
public bool test(parametar param)
{
// I do the propper checking of the param here, and return the result
}
public IObject CreateInstance(parametar param)
{
return new Object1(param);
}
}
您需要顯示Object1類的代碼。 – 2011-12-25 17:35:48
看看調用堆棧。 – SLaks 2011-12-25 17:36:00
你真的有一個叫'parametar'的班嗎? – 2011-12-25 17:39:35