[教程][C#] 新手入门教程#7——初识If Statement + .ToString() 方法

之前在教程#5 你认识了那帅帅的MessageBox,而且知道了如何更改MessageBox的显示按钮(OK、Yes、No等等),于是你又问问题了

你:如果用户按下Yes的话,我就MessageBox弹出“Yes”,按下No的话,就MessageBox显示“No”要肿么样呢?
我们来分析(或者说写“伪代码”,就是不是代码的代码):

如果 用户按下“Yes”按钮
让 MessageBox 显示“Yes”
如果 用户按下“No”按钮
让 MessageBox 显示“No”

我:如果的英文叫啥?
你:If!
我:厉害厉害!

先让我们看看MessageBox的代码咋写:
在Windows Form 上添加一个Button
然后双击Button
先写个MessageBox,显示“Yes/No”
标题为“If Tests!”
然后设置显示的按钮是Yes和No罢了:

image

MessageBox 在用户点击的时候就会返回一个enum(先别管这个是啥)
用来表示用户点击了啥按钮
用来看MessageBox点击了什么按钮的方法就是:在用一个MessageBox来显示!

image

这里的.ToString()是一个方法(Method,或者是Function),它能(很神奇的)把所有object 转成String,为什么要转成String呢?因为MessageBox只接受String咯!
按下F5编译运行试试看:
点击Button就会看到这个MessageBox:

image
试试看点击“Yes”
就会有另外个MessageBox弹出,显示你刚才点击的按钮:

image
雷吧?
你:我不要MessageBox里面又有MessageBox的啦!我不要我不要!
好吧,教程#5教过用变量了吧?
现在用吧!
我们知道

MessageBox.Show("Yes/No","If tests..",MessageBoxButtons.YesNo).ToString() 

是string吧!创建一个string变量来储存MessageBox返回的参数
然后在用MessageBox show 那个变量里面的值:

image
好啦好啦:

image
运行!

image
然后:

image

你:Where is my IF ?
正题来了,先删除之前写过的代码,我们“砍掉”重练!
if 的格式是这样的:

if ( Boolean Expression)
{
    //Body

}

//Body

里面就是当Boolean Expression 为True 时运行的代码
你:Boolean Expression是啥?
Boolean Expression就是多个relational operator 组成的“公式”:
假设我用有

变量A = 20
变量B = 30

Operators Description Example == 如果两边(就是'=='的之前和之后)相等,就返回True (A == B) 为 False ,A 不等于 B != 如果两边不相等,返回True (A != B) 为 True,A 不等于B

很像数学对吧?
现在来看看基本的if 如何写:
定义两个int 变量,

A 为 20
B 为 30

(就像上面那样)

image

现在来看看 == 运算符吧

然后运行看看

MessageBox 并没有弹出来

你:为啥?

我:因为A 不等于 B 咯!

再试试!= 看看:

image

然后运行:

image

明白了么?

要如何判断用户点击了Message Box 上的什么按钮呢?

你可能会兴奋地写出:

image

恩!

很好!

但是还能更好!

Message Box 返回的value 是一个 DialogResult

像这样:

image

DialogResult 里面有很多成员(members),我们要的是Yes:

image

然后显示一个MessageBox:

image

当然别忘了处理用户按了 No 按钮:

image

F5 编译运行后,你会发现竟然有2个MessageBox 跳出来!

为啥?

因为我们打了2次MessageBox.Show啊!

所以要用变量!变量!

你:MessageBox 返回是什么类型的啊?

我:就是DialogResult啊!

所以我们的变量类型是DialogResult!(有点点奇怪对吧?)

image

然后把两个if 里面的 MessageBox.show 换成 msg 变量:

image

完美运行!

image

image

PS: 我是不会让你知道其实还有更简单if.. else.. 写法!

« [教程][C#] 新手入门教程#6——初识变量、数据类型 [教程][C#] 新手入门教程#8——if..else if..else »
comments powered by Disqus