2011-04-12 38 views
1

下面是代碼:難道不是在目前情況下錯誤的存在,但它應該 - ASP.NET C#

for (int i = 0; i < Model.Count; i++) 
{ 
    Writer.WriteBeginTag("li"); 
    if (i % 2 == 1) 
    { 
      string myVar = "even "; 
    } 
    if ((i+1) % 3 == 0) 
    { 
     myVar += "third"; 
    } 
    Writer.WriteAttribute("class", ""); // I want to use myVar here 
    Writer.Write(HtmlTextWriter.TagRightChar); 
    Writer.WriteEndTag("li"); 
} 

我不是那麼熟悉.NET或C#。我在第二個myVar上收到錯誤The name "myVar" does not exist in the current context。如果我對此行發表評論,那麼我會在第一個myVar上發佈消息The variable "myVar" is assigned but its value is never used.。我真的不明白這是如何或爲什麼會超出範圍/範圍。

任何想法?

回答

3

myVar只存在於您的if之內。

您需要將聲明移至循環的主體。

+0

好的...這是有道理的。簡單。 – matthewpavkov 2011-04-12 15:06:28

7

您正在第一個if語句的範圍內創建變量myVar,因此它在第二個語句中不可用。你需要預先創建它:

string myVar = ""; 
if(...) 
{ 
    //use of myVar 
} 
if(...) 
{ 
//use of myVar 
} 
相關問題