在Language Feature Status上面看到,其实更新的并不是特别多,为了不会误导看了C# 6.0 功能预览 (一)的园友,现在把官方的更新列表拿了过来,供大家参考
功能 | 例子 | C# |
---|---|---|
Primary constructors | class Point(int x, int y) { … } | 完成 |
Auto-property initializers | public int X { get; set; } = x; | 完成 |
Getter-only auto-properties | public int Y { get; } = y; | 完成 |
Using static members | using System.Console; … Write(4); | 完成 |
Dictionary initializer | new JObject { ["x"] = 3, ["y"] = 7 } | 完成 |
Indexed member initializer | new JObject { $x = 3, $y = 7 } | 撤销 |
Indexed member access | c.$name = c.$first + " " + c.$last; | 撤销 |
Declaration expressions | int.TryParse(s, out var x); | 完成 |
Await in catch/finally | try … catch { await … } finally { await … } | 完成 |
Exception filters | catch(E e) if (e.Count > 5) { … } | 完成 |
Typecase | Select Case o : Case s As String : … | 没有 |
Guarded cases | Select Case i : Case Is > 0 When i Mod 2 = 0 | 没有 |
Partial modules | Partial Module M1 | N/A |
Partial interfaces | Partial Interface I1 | 存在 |
Multiline string literals | "Hello<newline>World" | 存在 |
Year-first date literals | Dim d = #2014-04-03# | N/A |
Binary literals | 0b00000100 | 计划 |
Digit separators | 0xEF_FF_00_A0 | 计划 |
Line continuation comments | Dim addrs = From c in Customers ' comment | N/A |
TypeOf IsNot | If TypeOf x IsNot Customer Then … | N/A |
Expression-bodied members | public double Dist => Sqrt(X * X + Y * Y); | 计划 |
Event initializers | new Customer { Notify += MyHandler }; | 计划 |
Null propagation | customer?.Orders?[5]?.$price | 计划 |
Semicolon operator | (var x = Foo(); Write(x); x * x) | 可能 |
Private protected | private protected string GetId() { … } | 计划 |
Params IEnumerable | int Avg(params IEnumerable<int> numbers) { … } | 计划 |
Constructor Inference | new Tuple(3, "three", true); | 可能 |
String interpolation | "\{p.First} \{p.Last} is \{p.Age} years old." | 可能 |
TryCast for nullable | Dim x = TryCast(u, Integer?) | 存在 |
Delegate combination with + | d1 += d2 | 存在 |
Implicit implementation | Class C : Implicitly Implements I | 存在 |
NameOf operator | string s = nameof(Console.Write); | 计划 |
Strict modules | Strict Module M | 存在 |
Faster CInt | Dim x = CInt(Math.Truncate(d)) | | 存在 |
#pragma | #Disable Warning BC40008 | 存在 |
Checked and Unchecked blocks | Checked : x += 1 : End Checked | 存在 |