我希望能夠降低下面的代碼行數更少,因爲它是用來幾個地方:實例化一個int如果聲明
int callID = getCallIndex(roomID);
if (callID >= 0)
{
...
,並嘗試一些這
if (int callID = getCallIndex(roomID) >= 0)
{
...
但它給出了一個編譯器錯誤。
是否有可能在if()語句中實例化和設置一個變量?
我希望能夠降低下面的代碼行數更少,因爲它是用來幾個地方:實例化一個int如果聲明
int callID = getCallIndex(roomID);
if (callID >= 0)
{
...
,並嘗試一些這
if (int callID = getCallIndex(roomID) >= 0)
{
...
但它給出了一個編譯器錯誤。
是否有可能在if()語句中實例化和設置一個變量?
與for
-loop不同的是,if語句中的表達式是一個表達式,其表達式爲true
或false
。然而,分配給您的示例中的分配值爲int
。在for
-loop但是你可以做這樣assignmenets你可以包含的代碼塊,而不是單值表達式:
for(assignements; condition; actions)
正如你所看到的第一個參數和循環的最後一個也可以是幾種聲明。然而,if語句需要一個值而不是語句。
所以這是不可能的。
謝謝 - 那麼我會堅持原來的代碼。 – Sam0
據我的理解,在C#中的if
語句的編碼中聲明一個變量是不可能的。
你可以做一個任務,並像這樣的if語句中的比較:
int callID;
if ((callID = getCallIndex(roomID)) >= 0)
{
}
,但你仍然需要聲明的聲明的變量int callID
外。
當你不需要內的CALLID如果使用以下命令:
if (getCallIndex(roomID) >= 0)
{
...
}
是的,它是possible.You可以使用分配的if
內condition.but你不能實例內部變量它。
int callID;
if (callID=getCallIndex(roomID) >= 0)
{
//do something.
}
所以,這是不可能的。
你爲什麼要這麼做?如果你在幾個地方需要這個值,那麼在「if」之外聲明它會更好。 –
你試圖實現什麼 – BugFinder
這個代碼需要幾個if()/ else()語句本身嵌套的if語句,但不是全部。 呼叫ID並不總是與所有if()語句相關 編輯:whoops,[enter]提交... – Sam0