0
static class MyClass
{
static void Main()
{
bool b1 = false;
if (b1)
{
throw new MyException(GetText(b1));
}
}
public static string GetText(bool bFlag)
{
if (bFlag==false)
{
throw new Exception("'GetText' method should not be called when condition is 'false');
}
return "Some error text";
}
}
所有工作正常,例如在上面(我的意思是,當條件B1是「真」,那麼「MyException」將適當的文本生成。而當條件如果「假」,則什麼也不會發生如何延遲參數值計算?
我希望有一些輔助的方法對我的異常類:
class MyException : Exception
{
public void FailIfTrue(bool bCondition, string strErrorMessage)
{
if (bCondition)
{
throw new Exception(strErrorMessage);
}
}
}
在這種情況下,「主」的方法將被更改爲另一個問題:
static class MyClass
{
static void Main()
{
bool b1 = false;
MyException.FailIfTrue(
b1,
GetText(b1)
);
}
}
在這種情況下「的getText」的方法將被調用......
問題:需要
你看到什麼好的辦法或解決方案,以創建一個幫助,將調用「的getText」只有當它的結果'FailIfTrue'函數的內部?
歡迎任何想法。
謝謝。
是的,傳入委託只在某些情況下執行是推遲執行的好方法。 – 2010-08-30 19:10:23