2013-03-27 136 views
1

我剛開始試圖學習C#。到目前爲止,我讀過50篇教程,並認爲我有一個很好的理解。顯然我錯了。我一直在MSDN.microsoft.com的C#程序員參考大量閱讀,但它似乎不是教程的最佳來源。簡單的C#方向聲明變量

我從字面上試圖完成最簡單的任務。嘗試瞭解變量,操作和輸入。我來自網絡編程,並希望將PHP腳本轉換爲桌面應用程序,因此我試圖學習C#的基礎知識,我想我可能需要學習不同的語言。

基本上,我有一個文本框和一個按鈕。點擊按鈕時,我想檢查文本框中的文本,看看它是否與某個字符串匹配。然後顯示帶有消息的消息框。

private void btnClick_Click(object sender, EventArgs e) { 
    if(txtCL.Text == "one") { 
     bool myTest = true; 
    } else { 
     bool myTest = false; 
    } 
    if(myTest == true) { 
     MessageBox.Show("You entered the correct password.", "Important Message"); 
    } else { 
     MessageBox.Show("The password you entered is not correct.", "Incorrect Input"); 
    } 
} 

如果有人能指點我更好的教程,以便我可以更快地學習,我真的很感激。微軟的文檔確實沒有教會我什麼。

我爲這個愚蠢的問題表示歉意,隨時可以稱我爲白癡。

+0

我也知道我不能使用布爾變量。但我也想了解變量。如何聲明它們並在代碼中使用它們。 – 2013-03-27 19:27:48

+0

檢查出一些這些鏈接:http://pluralsight.com/training/Courses/TableOfContents/csharp-fundamentals或http://www.youtube.com/playlist?list=PL37FF167549C26150所有語言的 – 2013-03-27 19:32:44

+0

基本規則保持相同即範圍,變量實例化,初始化和所有邏輯。你對自己太過分了。如果你是一個PHP的傢伙(程序員),它應該很容易爲你 – 2013-03-27 19:34:39

回答

8

這是一個範圍問題,myTest不存在,至少不是那裏 - 你每次在你的每個初始條件的範圍內創建它。如果你這樣做:

bool myTest = false; 
if(txtCL.Text == "one") { 
    myTest = true; 
} 
if(myTest == true) { 
    MessageBox.Show("You entered the correct password.", "Important Message"); 
} else { 
    MessageBox.Show("The password you entered is not correct.", "Incorrect Input"); 
} 

然後你指定你的布爾值,並將其設置爲false(這是一個bool的默認值,無論如何,實際上),然後如果你的條件符合檢查和重新分配相應的其;它可以被評估爲顯示你的消息框。

您可以縮短此代碼更多,爲讀者的練習。 (:

+0

+1,但請教額外的教訓和建議'布爾MYTEST =(txtCL.Text ==「1」);'沒有必要使用一個'if'僅做是'MYTEST = TRUE;'或'MYTEST =假'。 (當然,如果'(MYTEST ==真)'可以縮寫爲'如果(MYTEST)',或許還有一個變量名稱更改。) – stakx 2013-03-27 19:34:03

+0

格蘭特 - 非常感謝你。現在你解釋它是有道理的。 stakx - 我想有辦法做到三元聲明,但沒有得到一個例子呢。謝謝你。 – 2013-03-27 19:46:15

-2

我假設當你點擊按鈕時沒有任何事情發生。這是真的?如果是這樣,請在該行放置一個斷點:if(txtCL.Text ==「one」),運行該應用程序並單擊它。如果你沒有達到中斷點,那麼'點擊'事件和你的代碼之間就沒有聯繫。探索按鈕的屬性,你會看到一種方法來進行聯繫。

堅持下去,我是一個PHP傢伙,現在是一個C#人。可以辦到。

3

你並不真的需要一個布爾變量,你可以把它simplier:

private void btnClick_Click(object sender, EventArgs e) 
{ 
    if(txtCL.Text == "one") 
    { 
     MessageBox.Show("You entered the correct password.", "Important Message"); 
    } 
    else 
    { 
     MessageBox.Show("The password you entered is not correct.", "Incorrect Input"); 
    } 
} 

,如果你需要一些教程,只是谷歌「C#的初級教程」,或者如果你喜歡的視頻教程,你可以看看here

+0

在我給予好評的時候,這是指出了什麼,似乎這樣做的最合理的方式是唯一的答案。 – chris 2013-03-27 19:36:33

+0

我明白我不需要它。我試圖理解如何以不同的形式聲明變量,所以當我開始構建需要它們的應用程序時,我知道如何。我在我的問題下的評論中提到了這一點。 – 2013-03-27 19:37:32

+0

@Erick Hertlein,你是對的,我不小心沒看到你的評論,對不起。 – 2013-03-27 19:40:46

0
if(...) { 
     bool myTest = true; 
    } else { 
     bool myTest = false; 
    } 

    // At this point in time 'myTest' is not a known variable. 
    // It's out of scope already s your next line will cause a compile error. 
    if(myTest == true) { 
     ... 
    } 

所以,你需要聲明變量的範圍

bool myTest = false; 

    if(...) { 
     myTest = true; 
    } 

    // Now you can use the myTest variable 
    if(myTest) { 
     ... 
    } 

正如你已經指出的那樣,你不需要變量可言,因爲這樣的工作都是一樣的

private void btnClick_Click(object sender, EventArgs e) { 
    if(txtCL.Text == "one") { 
     MessageBox.Show("You entered the correct password.", "Important Message"); 
    } else { 
     MessageBox.Show("The password you entered is not correct.", "Incorrect Input"); 
    } 
} 

您可以隨心所欲地閱讀儘可能多的書籍,但由於您已經擁有PHP編程經驗,因此我建議您更多地使用C#的經驗,同時書籍當然不會受到影響。但我認爲你所遵循的方法(在線閱讀,編碼方面的東西)將最終得到回報。給它一些時間。實踐。很多。