程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> 關於C語言 >> [C# 3.0 入門] [第一章 Lambda表達式] 第四節(3)

[C# 3.0 入門] [第一章 Lambda表達式] 第四節(3)

編輯:關於C語言

除了void型以外,其它類型的表達式,使用三元運算符就沒有問題。下面的代碼在編譯和執行時就沒有問題。

1using System;
 2
 3class Program
 4{
 5  static void Main(string[] args)
 6  {
 7    Func<int, bool> method = (year) =>
 8      year < 1994 ? year % 4 == 0 : year % 4 == 2;
 9
10    Console.WriteLine("冬奧會年份");
11    for (int i = 1988; i < 1999; i++)
12    {
13      Console.WriteLine("{0}年={1}", i, method(i));
14    }
15    // 輸出:
16    // 冬奧會年份
17    // 1988年=True
18    // 1989年=False
19    // 1990年=False
20    // 1991年=False
21    // 1992年=True
22    // 1993年=False
23    // 1994年=True
24    // 1995年=False
25    // 1996年=False
26    // 1997年=False
27    // 1998年=True
28  }
29}
30

List14 使用三元運算符的Lambda表達式

代入變量method的Lambda表達式,判斷參數的年份是不是冬奧會舉行的年份,1994年以後,因為是兩年舉行一屆,所以判斷方式也要改變。這種情況下,當然是三元運算符派上用場的時候。總之,這種程度的問題,用表達式形式的Lambda就比較容易寫。

不用類型聲明的情況和必須類型聲明的情況

大部分情況下,Lambda表達式的參數類型都可以省略。然而,Lambda表達式的使用也存在限制,不能推定出類型的情況下就不能用Lambda表達式。

例如,Lambda表達式就不能代入到使用var關鍵字隱式類型聲明的局部變量:

var Lambda = (int x) =>x *2;

上面的代碼會產生“Lambda表達式局部變量隱式的類型聲明不會起作用”的錯誤。避免錯誤的方法是不要用var,而是明確的進行類型聲明。

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved