C# 7.0 ref local and returns
實驗一下 C# 7.0 ref local 和 returns 的功能
使用 LINQPad 6 測試
void Main()
{
PriceA.Dump("A"); // 199
PriceB.Dump("B"); // 99
PriceC.Dump("C"); // 9
"---".Dump("GetPriceA()");
ref decimal price = ref GetPriceA();
PriceA.Dump("A"); // 199
(++price).Dump("price++");
PriceA.Dump("A"); // 200
"---".Dump("GetPriceB()");
price = GetPriceB();
price.Dump("price"); // 99
PriceA.Dump("A"); // 99
PriceB.Dump("B"); // 99
(++price).Dump("price++"); // 100
PriceA.Dump("A"); // 100
PriceB.Dump("B"); // 99
"---".Dump("ref GetPriceC()");
price = ref GetPriceC();
price.Dump("price"); // 9
PriceA.Dump("A"); // 100
PriceB.Dump("B"); // 99
PriceC.Dump("C"); // 9
(++price).Dump("price++"); // 10
PriceA.Dump("A"); // 100
PriceB.Dump("B"); // 99
PriceC.Dump("C"); // 10
}
private decimal PriceA = 199;
private decimal PriceB = 99;
private decimal PriceC = 9;
public ref decimal GetPriceA()
{
return ref this.PriceA;
}
public decimal GetPriceB()
{
return this.PriceB;
}
public ref decimal GetPriceC()
{
return ref this.PriceC;
}