私はサンプルプロジェクトを作成しましたが、C#6.0の利点があります-例としてnullの伝播とプロパティの初期化を行い、ターゲットバージョン.NET 4.0を設定すると動作します。
public class Cat
{
public int TailLength { get; set; } = 4;
public Cat Friend { get; set; }
public string Mew() { return "Mew!"; }
}
class Program
{
static void Main(string[] args)
{
var cat = new Cat {Friend = new Cat()};
Console.WriteLine(cat?.Friend.Mew());
Console.WriteLine(cat?.Friend?.Friend?.Mew() ?? "Null");
Console.WriteLine(cat?.Friend?.Friend?.TailLength ?? 0);
}
}
- ウィキペディアによると、C#6.0の.NETフレームワークは4.6です。
- この質問(およびVisual Studio 2015 CTPテスト)では、CLRのバージョンは4.0.30319.0です。
- このMSDNページでは、.NET 4、4.5、4.5.2はCLR 4を使用していると述べています。.NET4.6に関する情報はありません。
.NET 4.0を対象とするソフトウェアでC#6.0の機能を使用できるということですか?制限や欠点はありますか?