为了账号安全,请及时绑定邮箱和手机立即绑定

if 语句有 {} 和 if 语句没有 {} 有什么区别?

if 语句有 {} 和 if 语句没有 {} 有什么区别?

C#
BIG阳 2022-11-13 13:44:50
我正在练习 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,尽管这是一个偏好或风格问题。


查看完整回答
反对 回复 2022-11-13
  • 1 回答
  • 0 关注
  • 98 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信