我正在练习 Xamarin 表单,我正在做一个简单的练习,当我运行程序时,按钮不起作用。我检查了我的代码,我决定{ }从 if 语句中删除,然后按钮开始工作。我不时注意到这种行为。为什么会这样?有什么区别?我一直认为每个代码块都必须在一个{}.谁能帮我解释一下,我可以理解吗?下面是 Xamarin 代码及其 C# 代码。<?xml version="1.0" encoding="utf-8" ?><ContentPage Padding="20" xmlns="http://xamarin.com/schemas/2014/forms" xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml" xmlns:local="clr-namespace:T_3000_QuotePageXMAL" x:Class="T_3000_QuotePageXMAL.MainPage"><StackLayout> <Button Text="Next" Clicked="Button_Clicked"></Button> <Label Text="{Binding Source={x:Reference Slider}, Path=Value, StringFormat='Font Size:{0:N0}'}"></Label> <Slider x:Name="Slider" Maximum="50" Minimum="16"></Slider> <Label x:Name="currentQuote" FontSize="{Binding Source={x:Reference Slider},Path=Value}"> </Label></StackLayout></ContentPage>现在,后面的 C# 代码: public partial class MainPage : ContentPage { int index = 0; public string[] quotes = new string[] { "Life is like riding a bicycle. To keep your balance, you must keep moving.", "You can't blame gravity for falling in love.", "Look deep into nature, and then you will understand everything better." } ; public MainPage() { InitializeComponent(); currentQuote.Text = quotes[index]; } private void Button_Clicked(object sender, EventArgs e) { index++; if (index>= quotes.Length) { // when I remove the { } from this block the button works index = 0; currentQuote.Text = quotes[index]; } // but when they are inserted , the button does not work }}请参阅 if 语句代码块的注释。
1 回答
蝴蝶不菲
TA贡献1810条经验 获得超4个赞
如果删除花括号:
if (index>= quotes.Length)
index = 0;
currentQuote.Text = quotes[index];
这相当于:
// only the first statement is part of the if
if (index>= quotes.Length) index = 0;
// this statement executes even if the IF statement fails
currentQuote.Text = quotes[index];
在 C# 中,大括号{}定义了一个代码块。
{}使用inif和语句来防止歧义是一个好主意else,尽管这是一个偏好或风格问题。
- 1 回答
- 0 关注
- 126 浏览
添加回答
举报
0/150
提交
取消