C# 3.0/3.5语法新特性示例汇总[转]
生活随笔
收集整理的這篇文章主要介紹了
C# 3.0/3.5语法新特性示例汇总[转]
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
//作者:楊衛國
//時間:2008年2月21日
//說明:C#語法新特型示例
using?System;
using?System.Collections.Generic;
using?System.Linq;
using?System.Text;
using?System.Windows.Forms;
namespace?C3
{
????class?Program
????{
????????//新特性1:簡單屬性,無需另外多寫一個私有字段,比較適合于定義實體類
????????public?class?GsunisMan
????????{
????????????//傳統寫法,屬性必須有一個私有字段
????????????private?int?age;
????????????public?int?Age
????????????{
????????????????get
????????????????{
????????????????????return?age;
????????????????}
????????????????set
????????????????{
????????????????????age?=?value;
????????????????}
????????????}
????????????//3.5寫法,直接定義即可;
????????????public?string?Name?{?get;?set;?}
????????????public?Int64?ID?{?get;?private?set;?}
????????}
????????static?void?Main(string[]?args)
????????{
????????????//新特性2:隱式類型,隱式類型化本地變量,但必須賦初值,編譯器通過初值推導出變量類型
????????????var?i?=?10;?//相當于?int?i=10;
????????????var?s?=?"甘肅紫光軟件研發部";?//s為String類型;?
????????????var?arrNums?=?new?int[]?{?3,6,9?};
????????????//新特性3:初始化數組的簡寫方式:new[],可以回憶一下1.1、2.0怎么定義?
????????????int[]?arrNums2?=?new[]?{?1,?2,?43?};//當然也可以寫成:var?arrNums2?=?new[]?{?1,?2,?43?};
????????????/**//**//**////新特性4:匿名類型,在2.0中有個匿名方法,很容易混淆
????????????var?book1?=?new?{?BookName?=?"《紫光人2007紀念版》",?BookNumber?=?150,BookPublisher?=?"甘肅紫光企劃部"?};
????????????MessageBox.Show(string.Format("書名:{0},數量:{1},出版:{2}"?,book1.BookName?,?book1.BookNumber?,?book1.BookPublisher));
????????????/**//**//**////新特性5:對象構造者(實例化時,構造函數后面跟大括號,可直接初始化對象屬性),在1.1、2.0中必須先定義,然后初始化
????????????GsunisMan?aMan?=?new?GsunisMan()?{Name?=?"楊衛國",?Age?=?100?};
????????????MessageBox.Show(string.Format("編號:{0},姓名:{1},年齡:{2}",?aMan.ID,aMan.Name,aMan.Age));
????????????/**//**//**////新特性6:集合構造者特性。允許List<>等自定義集合像數組一樣用大括號賦初值,在以前只有數組才可以的
????????????List<int>?listNums?=?new?List<int>()?{?1,?3,?54,?6,?78?};
????????????MessageBox.Show(listNums.Count.ToString());
????????????//新特性7.2,請首先看看下面的新特性7.1;
????????????string?str?=?"123";
????????????bool?isNum?=?str.IsAllNumber();
????????????MessageBox.Show(isNum.ToString());
????????????//新特性8:Linq,作用就不多說了,用法太多,自己找資料看;
????????????//從一個集合中找出所有年齡大于55歲的人;
????????????List<GsunisMan>?men=new?List<GsunisMan>();????????????
????????????men.Add(new?GsunisMan{Name="劉備",Age=65});
????????????men.Add(new?GsunisMan?{?Name?=?"關羽",?Age?=60?});
????????????men.Add(new?GsunisMan?{?Name?=?"張飛",?Age?=?50?});
????????????var?man=?from?m?in?men?where?m.Age>55?select?m;?//使用Linq,前面幾行在準備數據,感覺有些像Sql語句,呵呵
????????????MessageBox.Show(man.First<GsunisMan>().Name);?????//在此僅顯示第一個人姓名
????????????//新特性9:Lambda表達式"=>",一個簡單的例子,用法太多,自己找資料看;
????????????int[]?numbers?=?{?5,?4,?1,?3,?9,?8,?6,?7,?2,?0?};
????????????int?oddNumbers?=?numbers.Count(n?=>?n?%?2?==?1);????//找出奇數的個數
????????????MessageBox.Show(oddNumbers.ToString());
???????????
????????}
???????
????}
????static?public?class?ExpandClass
????{
????????//新特性7.1:擴展方法。可在類的外部擴展已有的類,如下是擴展string類,為String類增加一個IsAllNumber方法
????????//!!!此特性在.NET?2.0下不可用!!!
????????public?static?bool?IsAllNumber(this?string?str)
????????{
????????????foreach?(var?ch?in?str)
????????????{
????????????????if?(!char.IsNumber(ch))
????????????????{
????????????????????return?false;
????????????????}
????????????}
????????????return?true;
????????}
???????
????}
???
}
//時間:2008年2月21日
//說明:C#語法新特型示例
using?System;
using?System.Collections.Generic;
using?System.Linq;
using?System.Text;
using?System.Windows.Forms;
namespace?C3
{
????class?Program
????{
????????//新特性1:簡單屬性,無需另外多寫一個私有字段,比較適合于定義實體類
????????public?class?GsunisMan
????????{
????????????//傳統寫法,屬性必須有一個私有字段
????????????private?int?age;
????????????public?int?Age
????????????{
????????????????get
????????????????{
????????????????????return?age;
????????????????}
????????????????set
????????????????{
????????????????????age?=?value;
????????????????}
????????????}
????????????//3.5寫法,直接定義即可;
????????????public?string?Name?{?get;?set;?}
????????????public?Int64?ID?{?get;?private?set;?}
????????}
????????static?void?Main(string[]?args)
????????{
????????????//新特性2:隱式類型,隱式類型化本地變量,但必須賦初值,編譯器通過初值推導出變量類型
????????????var?i?=?10;?//相當于?int?i=10;
????????????var?s?=?"甘肅紫光軟件研發部";?//s為String類型;?
????????????var?arrNums?=?new?int[]?{?3,6,9?};
????????????//新特性3:初始化數組的簡寫方式:new[],可以回憶一下1.1、2.0怎么定義?
????????????int[]?arrNums2?=?new[]?{?1,?2,?43?};//當然也可以寫成:var?arrNums2?=?new[]?{?1,?2,?43?};
????????????/**//**//**////新特性4:匿名類型,在2.0中有個匿名方法,很容易混淆
????????????var?book1?=?new?{?BookName?=?"《紫光人2007紀念版》",?BookNumber?=?150,BookPublisher?=?"甘肅紫光企劃部"?};
????????????MessageBox.Show(string.Format("書名:{0},數量:{1},出版:{2}"?,book1.BookName?,?book1.BookNumber?,?book1.BookPublisher));
????????????/**//**//**////新特性5:對象構造者(實例化時,構造函數后面跟大括號,可直接初始化對象屬性),在1.1、2.0中必須先定義,然后初始化
????????????GsunisMan?aMan?=?new?GsunisMan()?{Name?=?"楊衛國",?Age?=?100?};
????????????MessageBox.Show(string.Format("編號:{0},姓名:{1},年齡:{2}",?aMan.ID,aMan.Name,aMan.Age));
????????????/**//**//**////新特性6:集合構造者特性。允許List<>等自定義集合像數組一樣用大括號賦初值,在以前只有數組才可以的
????????????List<int>?listNums?=?new?List<int>()?{?1,?3,?54,?6,?78?};
????????????MessageBox.Show(listNums.Count.ToString());
????????????//新特性7.2,請首先看看下面的新特性7.1;
????????????string?str?=?"123";
????????????bool?isNum?=?str.IsAllNumber();
????????????MessageBox.Show(isNum.ToString());
????????????//新特性8:Linq,作用就不多說了,用法太多,自己找資料看;
????????????//從一個集合中找出所有年齡大于55歲的人;
????????????List<GsunisMan>?men=new?List<GsunisMan>();????????????
????????????men.Add(new?GsunisMan{Name="劉備",Age=65});
????????????men.Add(new?GsunisMan?{?Name?=?"關羽",?Age?=60?});
????????????men.Add(new?GsunisMan?{?Name?=?"張飛",?Age?=?50?});
????????????var?man=?from?m?in?men?where?m.Age>55?select?m;?//使用Linq,前面幾行在準備數據,感覺有些像Sql語句,呵呵
????????????MessageBox.Show(man.First<GsunisMan>().Name);?????//在此僅顯示第一個人姓名
????????????//新特性9:Lambda表達式"=>",一個簡單的例子,用法太多,自己找資料看;
????????????int[]?numbers?=?{?5,?4,?1,?3,?9,?8,?6,?7,?2,?0?};
????????????int?oddNumbers?=?numbers.Count(n?=>?n?%?2?==?1);????//找出奇數的個數
????????????MessageBox.Show(oddNumbers.ToString());
???????????
????????}
???????
????}
????static?public?class?ExpandClass
????{
????????//新特性7.1:擴展方法。可在類的外部擴展已有的類,如下是擴展string類,為String類增加一個IsAllNumber方法
????????//!!!此特性在.NET?2.0下不可用!!!
????????public?static?bool?IsAllNumber(this?string?str)
????????{
????????????foreach?(var?ch?in?str)
????????????{
????????????????if?(!char.IsNumber(ch))
????????????????{
????????????????????return?false;
????????????????}
????????????}
????????????return?true;
????????}
???????
????}
???
}
轉載于:https://www.cnblogs.com/craig/archive/2009/05/13/1455651.html
總結
以上是生活随笔為你收集整理的C# 3.0/3.5语法新特性示例汇总[转]的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: MAC高手帮忙阿 救命 MAC电脑桌面跳
- 下一篇: 千里眼可以把充电线拔掉吗?