亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 編程 > C# > 正文

C#語法糖(Csharp Syntactic sugar)大匯總

2020-01-24 03:44:45
字體:
來源:轉載
供稿:網友

1. 經過簡化的Property
早些時候我們這樣聲明Property

復制代碼 代碼如下:

private string _myName;
public string MyName
{
get { return _myName; }
set { _myName = value; }
}

千篇一律的這樣聲明,沒有多大意義,于是C#的設計人員將這個千篇一律的工作交給了編譯器幫我們做了,我們現在可以這樣聲明
復制代碼 代碼如下:

public string MyName { get; set; }

當然他不會犧牲靈活性,我們可以單獨給get或者set設定訪問限制符,例如
復制代碼 代碼如下:
public string MyName { get; protected internal set; }

2. 經過兩次變異的委托寫法
在.net 1.1時我們不得不聲明方法后才在委托中使用,在.net 2.0之后我們可以使用匿名委托,他不單可以簡化寫法,還可以在匿名委托中訪問范圍內的變量;再后來拉姆達表達式來了,寫法就更簡便了。
復制代碼 代碼如下:

class MyClass
{
public delegate void DoSomething(int a);
//定義方法委托
private void DoIt(int a) {
Console.WriteLine(a);
}
private void HowtoDo(DoSomething doMethod,int a) {
doMethod(a);
}
public static void Main(string[] args) {
MyClass mc = new MyClass();
//調用定義的方法委托
mc.HowtoDo(new DoSomething(mc.DoIt), 10);
int x = 10;
//使用匿名委托
mc.HowtoDo(delegate(int a){
Console.WriteLine(a + x);
},10);
//使用lamda表達式
mc.HowtoDo(a=>Console.WriteLine(a+x),10);
Console.ReadLine();
}
}

3. 集合類的聲明
之前我們聲明一個List并給list賦初始值,必須得這么寫:
List<string> list = new List<string>();
list.Add("a一");
list.Add("b二");
list.Add("c三");
現在不需要了,直接寫就可以了
List<string> list = new List<string> {
"def","OK"
};
4. 集合類各個項的操作
我們為了逐個處理集合中的項,需要這么寫:
foreach (string item in list)
{
Console.WriteLine(item);
}
現在不需要了,這樣就可以了
list.ForEach(a => Console.WriteLine(a));
代碼是不是清爽了很多。
5. using == try finally
為了在使用完畢時釋放資源,我們經常要用using,using實質上就是try fiannaly的一個語法糖而已。例如
StreamWriter sw = null;
try
{
sw = new StreamWriter("d:/abc.txt");
sw.WriteLine("test");
}
finally {
if(sw!= null) sw.Dispose();
}
上面的代碼可以簡化為:
using (var sw = new StreamWriter("d:/abc.txt")) {
sw.WriteLine("test");
}
6. 可愛的var
var的意義時不必寫聲明的類型,編譯器會根據后面對var的賦值判斷它的類型,var的類型一旦確認就不能再改變,它只能作為局部變量使用,不能用做字段也不能用做參數聲明。
例如:
var writer = new StreamWriter(path);
for(var i=0;i<100;i++){}
7. 問號的演變
老掉牙的一個問號+冒號
var b = 3;
var a = b > 9?b.ToString():"0"+b;
新寶寶兩個問號 ??,它表示左邊的變量如果為null則值為右邊的變量,否則就是左邊的變量值
string a = null;
var b = a??"";
8. 類型實例化的語法糖
public class Abc
{
public int ID { get; set; }
public string Name { get; set; }
public string Url { get; set; }
}
我們沒有為上面的類聲明構造函數,但是我們可以像下面的形式來實例化它
public static void Main(string[] args) {
var abc = new Abc{
ID=1,
Name="jb51",
Url="http://jb51.VeVB.COm/"
};
}
9. 傳說中的擴展方法
在c#3.5時引入了擴展方法,我們可以在不修改類源碼的情況下給類增加實例方法,這個很有意義。它的實質也是一種語法糖的實現
例如我們給String類擴展一個IsNumber的方法:
view sourceprint?01 public static class StringExt {
static private Regex regexNumber = new Regex("http://d+");
static public bool IsNumber(this string input)
{
if (string.IsNullOrEmpty(input))
{
return false;
}
return regexNumber.IsMatch(input);
}
}
我們可以在String實例上調用這個方法了
var abc = “123";
var isNumber = abs.IsNumber();
10.使用匿名類
復制代碼 代碼如下:

var a = new {
ID = 1,Name="jb51",BlogUrl="http://www.49028c.com/jb51/"
};

匿名類在linq to sql或者entity framework中返回查詢數據時很好用。
如果大家還有更多的語法糖,歡迎分享。同時希望大家享受語法糖,因為他可以給我們帶來方便,請不要對它嗤之以鼻,也沒必要對它嗤之以鼻。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
国产精品无av码在线观看| 久久精品中文字幕免费mv| 久久精品国产69国产精品亚洲| 日韩av有码在线| 91免费的视频在线播放| 欧美亚洲国产另类| 国产成+人+综合+亚洲欧洲| 亚洲在线观看视频| 成人www视频在线观看| 亚洲精品久久久久久久久| 亚洲人成欧美中文字幕| 亚洲色图欧美制服丝袜另类第一页| 国产精品国产自产拍高清av水多| 欧美人成在线视频| 久久视频免费观看| 麻豆国产va免费精品高清在线| 91老司机精品视频| 国产盗摄xxxx视频xxx69| 亚洲免费精彩视频| 亚洲国产一区二区三区四区| 久久久中文字幕| 亚洲国产另类久久精品| 久久久久久久久久久av| 亚洲综合小说区| 亚洲性猛交xxxxwww| 视频在线观看99| 国产亚洲欧美视频| 亚洲女人天堂网| 成人午夜黄色影院| 性欧美办公室18xxxxhd| 日韩成人黄色av| 2019日本中文字幕| 亚洲黄色有码视频| 亚洲国产高潮在线观看| 日本精品一区二区三区在线| 亚洲精品国精品久久99热| 欧美中在线观看| 日韩免费av片在线观看| 国产精品丝袜白浆摸在线| 97色在线视频| 久久久久北条麻妃免费看| 日韩国产一区三区| 欧美在线一区二区三区四| 日韩电影中文字幕在线观看| 日韩av网站导航| 亚洲国产精品一区二区久| 欧美成人高清视频| 美乳少妇欧美精品| 欧美性xxxx极品高清hd直播| 国产精品女人网站| 51ⅴ精品国产91久久久久久| 欧美视频在线免费| 91免费电影网站| 久久国产精品视频| 色www亚洲国产张柏芝| 亚洲无线码在线一区观看| 欧美日韩亚洲精品内裤| 久久成年人视频| 中文字幕亚洲第一| 丁香五六月婷婷久久激情| 欧美一二三视频| 欧美成人午夜激情在线| 欧美二区在线播放| 91久久精品国产91性色| 欧美性xxxxhd| 最近免费中文字幕视频2019| 一个色综合导航| 欧美一级片一区| 国产在线999| 国产精品高潮在线| 欧美乱大交做爰xxxⅹ性3| 欧美亚洲成人网| 日韩美女视频在线观看| 26uuu亚洲国产精品| 国产精品一二区| 国产亚洲精品成人av久久ww| 69视频在线免费观看| 欧美精品少妇videofree| 97在线免费视频| 久久国产精品影片| 成人免费直播live| 亚洲女人天堂色在线7777| 欧美肥老太性生活视频| 欧美成人黄色小视频| 性色av一区二区三区在线观看| 亚洲国产精品女人久久久| 亚洲福利小视频| 亚洲永久免费观看| 国产小视频91| 午夜精品久久久久久久白皮肤| 欧美老女人在线视频| 国产精品大片wwwwww| 亚洲一区二区三区成人在线视频精品| 亚洲国产精品久久91精品| 一区国产精品视频| 亚洲最大福利视频网| 97超碰色婷婷| 成人a免费视频| 亚洲欧美精品中文字幕在线| 久久99久久亚洲国产| 中文字幕精品www乱入免费视频| 久久视频在线观看免费| 欧美精品18videos性欧| 国产精品国产福利国产秒拍| 日本精品久久久久影院| 国产精品久久久久久久美男| 久久免费视频这里只有精品| 欧美精品激情视频| 国产精品一区二区三区毛片淫片| 91精品中国老女人| 91亚洲永久免费精品| 国产精品9999| 精品国产成人在线| www.美女亚洲精品| 成人国产精品日本在线| 亚洲欧美三级伦理| 国产国语videosex另类| 久久在精品线影院精品国产| 久久久成人精品| 久久久久久久97| 91精品国产777在线观看| 欧美精品少妇videofree| 91美女片黄在线观看游戏| 国产欧美精品在线播放| 成人亲热视频网站| 国产又爽又黄的激情精品视频| 亚洲欧美激情精品一区二区| 九九久久久久久久久激情| 日韩精品视频三区| 日韩精品在线视频观看| 日韩免费在线电影| 亚洲国产欧美在线成人app| 亚洲欧美日韩中文在线| 久久久久久97| 亚洲香蕉伊综合在人在线视看| 国产精品99久久久久久久久久久久| 中文字幕不卡在线视频极品| 中文字幕在线亚洲| 亚洲成人在线视频播放| 一区二区三区亚洲| 国产亚洲欧美日韩精品| 国产日韩在线精品av| 欧美激情性做爰免费视频| 色偷偷噜噜噜亚洲男人| 亚洲毛片在线观看.| 国产精品专区一| 国产精品偷伦免费视频观看的| 91精品国产自产91精品| 91九色蝌蚪国产| 日韩av电影中文字幕| 欧美成人四级hd版| 91tv亚洲精品香蕉国产一区7ujn| 国产日韩欧美另类| 欧美日韩综合视频| 亚洲国产精品小视频| 国产色综合天天综合网| 色偷偷噜噜噜亚洲男人| 精品亚洲一区二区三区在线观看| 久久成人精品电影| 亚洲自拍av在线| 欧美黄网免费在线观看| 国产精品69精品一区二区三区| 亚洲男人av在线| 午夜精品一区二区三区在线视频|