無無聊聊翻開了本c# in a nutshell看了一下 發現了一個和c++幾乎一模一樣的語法糖
using System;
public class Wine
{
public decimal Price;
public int Year;
public Wine (decimal price) { Price = price; }
public Wine (decimal price, int year) : this (price) { Year = year; }
}
和以下這段code是等價的
using System;
public class Wine
{
public decimal Price;
public int Year;
public Wine (decimal price) { Price = price; }
public Wine (decimal price, int year) { Wine(price); Year = year; }
}
一樣都會改Price的值
上網找了一下 發現原來
還有很多方便的語法糖 以下節錄幾個常用的
經過兩次變異的委託寫法
真的易用多了一開始推出的時候真的完全看不懂
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();
}
}