0
我具有以下在一些不同的類的功能C1,D2,F34:如何避免複製粘貼的異常功能?
class C1
{
void SomeFunc
{
Statement1();
Obj = GetObj();
Statement2(Obj);
}
IMyObj Obj{get;private set;}
}
public static class MyObjExt
{
public static void Statement2(this IMyObj obj)
{
... do validation of 'obj';
... throw exception if object state is wrong
}
}
類C1,D2,F34不相同的層次結構的構件。
所以我想避免複製粘貼它們。
我可以做這樣的事情:
static MyObj MyFunc()
{
Statement1();
IMyObj obj = GetObj();
Statement2(obj);
return obj;
}
class C1
{
void SomeFunc
{
Obj = MyFunc();
}
IMyObj Obj{get;private set;}
}
但如果「聲明2」函數拋出一個異常OBJ成員將未初始化...
我怎麼能避免複製粘貼?
你想要發生什麼? – 2011-02-18 20:31:46
我想要'Obj'屬性總是初始化。特別是,如果在'Statement2'中引發異常。 – Budda 2011-02-18 20:38:40