我的課剛剛從java切換到c#,所以我仍然在學習它的語法。這聽起來可能是一個愚蠢的問題,但是我現在堅持了一個小時而沒有回答一個簡單的問題,是否在c#中有+ =?不能在c#中使用+ =?
for (int i = 0; i < users.Count(); i++) {
double sum += users[i].getFine();
它給了我和錯誤的總和+ =部分說:
「只有分配,調用,遞增,遞減,在等待着,新的對象 表達式可以作爲一個聲明」
我的課剛剛從java切換到c#,所以我仍然在學習它的語法。這聽起來可能是一個愚蠢的問題,但是我現在堅持了一個小時而沒有回答一個簡單的問題,是否在c#中有+ =?不能在c#中使用+ =?
for (int i = 0; i < users.Count(); i++) {
double sum += users[i].getFine();
它給了我和錯誤的總和+ =部分說:
「只有分配,調用,遞增,遞減,在等待着,新的對象 表達式可以作爲一個聲明」
你應該先定義變量,然後嘗試使用+ =
double sum=0;
for (int i = 0; i < users.Count(); i++)
sum += users[i].getFine();
改變它
sum += x;
等於sum = sum + x ;
您可以瞭解更多的是在MSDN += Operator (C# Reference)
我希望這個簡單的答案原來是有幫助的。
它正在工作,因爲它應該是。
此:
double sum += users[i].getFine();
等於
double sum = sum + users[i].getFine();
而且sum
在嘗試將其添加到users[i].getFine
此刻不存在。 你正在得到的錯誤意味着,編譯器不知道你正在嘗試做什麼 - 你應該對某個變量進行某些操作,或者增加其他內容,或者等待某些事情,或者執行此消息中的其他任何事情。
此外,該代碼無法按預期工作,因爲它在每個循環都被重寫。 sum
應該定義在循環之外。
您認爲您的發佈代碼如下所示。基本上在每次循環迭代中,你聲明一個新變量double sum
,在這種情況下代碼sum += users[i].getFine();
是否有意義。不,這意味着更少,更少邏輯。因此編譯器會拋出錯誤,要求您聲明變量sum
超出範圍。
for (int i = 0; i < users.Count(); i++) {
double sum += users[i].getFine();
定義你在你的循環之前求和並將它用作'sum + = users [i] .getFine();'。 –
你正在每個循環中聲明變量,你不能總結。可能你想從for循環中移出聲明('double sum = 0;'),並在循環內部進行加法運算('sum + = users [i] .getFine();')。 – Styxxy
嘗試閱讀「C#簡而言之」,它是一本關於C#語言(和一些CLR)的各個方面的很好解釋的書籍 –