C# 6.0 功能预览 (二)

Language Feature Status上面看到,其实更新的并不是特别多,为了不会误导看了C# 6.0 功能预览 (一)的园友,现在把官方的更新列表拿了过来,供大家参考

 

语言功能实现状态

  • 存在: 在以前的版本中已经存在
  • 完成: 已经在该版本中实现
  • 计划: 预计在该版本中
  • 可能: 预计可能在该版本中
  • 撤销: 可能不在该版本中
  • 没有: 该版本中没有
  • N/A: 没有意义

 

功能

例子

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.Lastis \{p.Ageyears 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

存在

 

 

 

posted @ 2014-05-07 12:32  CodingStar  阅读(2350)  评论(6编辑  收藏  举报