C# 6.0 功能预览 (二)
在Language Feature Status上面看到,其实更新的并不是特别多,为了不会误导看了C# 6.0 功能预览 (一)的园友,现在把官方的更新列表拿了过来,供大家参考
语言功能实现状态
- 存在: 在以前的版本中已经存在
- 完成: 已经在该版本中实现
- 计划: 预计在该版本中
- 可能: 预计可能在该版本中
- 撤销: 可能不在该版本中
- 没有: 该版本中没有
- N/A: 没有意义
功能 |
例子 |
|
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 }; |
计划 |
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); |
可能 |
"\{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 Module M |
存在 |
|
Dim x = CInt(Math.Truncate(d)) | |
存在 |
|
#Disable Warning BC40008 |
存在 |
|
Checked and Unchecked blocks |
Checked : x += 1 : End Checked |
存在 |