none
channel 9 第九课中的 (r => r.IsChecked == true) 中的r 是什么意思 RRS feed

  • 问题

  • 代码如下:

    private void performCalculation()
            {
              var selectedRadio = myStackPanel.Children.OfType<RadioButton>().FirstOrDefault(r => r.IsChecked == true);

              tip.CalculateTip(billAmountTextBox.Text, double.Parse(selectedRadio.Tag.ToString()));

              amountToTipTextBlock.Text = tip.TipAmount;
              totalTextBlock.Text = tip.TotalAmount;

            }

    注: channle 中附的代码我都看了,但是就是没有发现哪里有 r 的定义 MSDN里面也找不到,,无法理解啊。

    2014年12月27日 3:47

答案

全部回复

  • 你把他想成 foreach 就差不多了. 就是指 myStackPanel 中的每一個RadioButton.

    所以假設他有三個 RadioButton

    就先把第一個 RadioButton 代入 r, 檢查它的 IsChecked 是否為 true;

    再來把第二個 RadioButton 代入 r, 檢查它的 IsChecked 是否為 true;

    再來把第三個 RadioButton 代入 r, 檢查它的 IsChecked 是否為 true;


    在現實生活中,你和誰在一起的確很重要,甚至能改變你的成長軌跡,決定你的人生成敗。 和什麼樣的人在一起,就會有什麼樣的人生。 和勤奮的人在一起,你不會懶惰; 和積極的人在一起,你不會消沈; 與智者同行,你會不同凡響; 與高人為伍,你能登上巔峰。

    • 已标记为答案 灯雨 2015年1月1日 15:48
    • 取消答案标记 灯雨 2015年1月1日 15:48
    2014年12月27日 7:20
  • 您好,
    请参考「FirstOrDefault<TSource> 方法」。
    如果 source 为空或没有元素通过 predicate 指定的测试,则返回 default(TSource),否则返回 source 中通过 predicate 指定的测试的第一个元素。

    亂馬客blog: http://www.dotblogs.com.tw/rainmaker/

    2014年12月27日 8:51
  • 这个叫Lambda表达式,Lambda表达式的用法可以查看MSDN文档系统的学一下就懂了
    • 已标记为答案 灯雨 2015年1月1日 15:48
    2014年12月28日 9:16
  • 真谢谢你,听你说我现在已经懂了,谢谢。

         你的看法我十分十分赞同,近朱者赤,近墨者黑,这本就是世间常态。当然,这个世界的确有出淤泥而不染者,可是这实在凤毛麟角,身边有这类人实算三生有幸。

        上佛学的公选课的时候老师跟台下的学生说,有一个方法能够改变命运:想,行,说。现在想来的确很有道理,三字可窥得一些常识:命运并非注定,而是创造。

    很高兴能认识您。

    2015年1月1日 15:40
  • 嗯嗯,我已经看了,现在已经懂了,谢谢您。 抱歉这么晚才回帖。。
    • 已标记为答案 灯雨 2015年1月1日 15:48
    • 取消答案标记 灯雨 2015年1月1日 15:48
    2015年1月1日 15:42
  • 好的,谢谢您
    2015年1月1日 15:52