編輯:最初,這個職位的例子已經處理哈希碼,所以你會看到一些使用param.GetHashCode(),而不是(1 +參數)的意見。爲了獲得更多的信息,我已經改變了函數來計算一個加上某個數字的絕對值。C# - 限制範圍到三元語句
假設我想創建一個函數來計算某個整數的絕對值(不使用Math.Abs)。我可以寫類似於:
int absoluteValueOfOnePlus(int param)
{
int onePlusParam= 1 + param;
return ((onePlusParam> 0) ? (onePlusParam) : (-onePlusParam));
}
我期待onePlusParm的範圍限制在三元語句中 - 類似於:
int absoluteValueOfOnePlus(intparam)
{
return (((int onePlusParam = 1 + param) > 0) ? (onePlusParam) : (-onePlusParam));
}
我明白,這不是有效的C# ,但它證明了我正在嘗試執行的一個很好的例子 - 創建一些僅存在於三元運算符範圍內的變量。
「我期待壓縮這個方法到一條線」。你能解釋爲什麼你需要這樣做嗎? – openshac
你可以做'int i;返回i = param.GetHashCode()> 0?我: - 我;'...我不會,但你可以。 –
@openshac,它比限制範圍更多。如果函數大得多,我會在函數的其餘部分存在。在三元語句中使用聲明會將範圍限制在三元範圍內 - 語句完成後,我將被刪除。 –