本篇簡單示範運算式 Lambda(Expression Lambda)的用法。
前言
本篇簡單示範運算式 Lambda(Expression Lambda)的用法。
說明
運算式 Lambda,傳回運算式結果後採用下列:
-
一個參數時,括號是 "選擇性" 的
例︰( y ) => y * y; 或者 y => y * y; -
多個參數時,括號是 "必須" 的
例:( a, b ) => a == b -
當編譯器判斷不出輸入型別時,我們可以明確指定型別
例:(int a, string i) => i.Length > a -
無參數時,則以空括號指定
例:() => SomeMethod()
示範
Step1、建立一個新專案
Step2、畫面設計
在 Grid 內佈置下面畫面,其控制項配置如下:
- Button 按鈕,Name 屬性:btn1,Content 屬性:確定
產生的 XAML 程式碼如下:
<Grid x:Name="ContentPanel" Grid.Row="1" Margin="12,0,12,0">
<Button x:Name="btn1" Content="確 定" HorizontalAlignment="Left" Margin="116,76,0,0" VerticalAlignment="Top" Height="109" Width="210" FontSize="36"/>
</Grid>
Step3、在 MainPage.cs 程式碼中撰寫事件處理函式:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Net;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Navigation;
using Microsoft.Phone.Controls;
using Microsoft.Phone.Shell;
using PhoneApp1.Resources;
namespace PhoneApp1
{
public partial class MainPage : PhoneApplicationPage
{
// 建構函式
public MainPage()
{
InitializeComponent();
btn1.Click += btn1_Click; //產生btn1的Click事件
}
delegate bool methAddr1(int i, string s);
delegate int methAddr2();
void btn1_Click(object sender, RoutedEventArgs e)
{
methAddr1 compStrLen = (x, s) => s.Length > x;
bool res = compStrLen(5, "banana");
MessageBox.Show("banana 長度是否超過3 = " + res.ToString());
methAddr2 compSum = () => Sum();
int res1 = compSum();
MessageBox.Show("1*2*3*4*5 = " + res1.ToString());
}
private int Sum()
{
int s = 1;
for (int i = 1; i <= 5; i++)
s *= i;
return s;
}
}
}
結果
按一下頁面中的"確定"鈕。
判斷 banana 字串長度是否超過 3,是的話會跳出一個 MessageBox。
跳到下一個 MessageBox,算出 1*2*3*4*5 的結果。
相關參考與引用