2013-03-27 139 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#的经验,同时书籍当然不会受到影响。但我认为你所遵循的方法(在线阅读,编码方面的东西)将最终得到回报。给它一些时间。实践。很多。