NVIDIA 初创加速计划,免费加速您的创业启动 了解详情
写点什么

C#和 VB.NET 获得 Windows Runtime 支持和异步方法

  • 2011-09-26
  • 本文字数:1228 字

    阅读完需:约 4 分钟

C#和 VB.NET 将会获得新特性,比如说,Windows Runtime 支持、异步方法和 Caller Info 特性等等。另外,编译器也会获得一些 API,把它对代码的了解暴露给 IDE 和开发者。

微软的 Anders Hejlsberg 在微软 BUILD 大会上演示了C# 5.0 和VB.NET 的新特性。 Samuel Jack 在他的博文《What’s new in C# 5.0 and VB.NET?》里给出了详细的列表。下面是新特性的摘要:

  • Windows Runtime 支持:C#和 VB.NET 现在已经深度整合到 Windows Runtime 了——C#项目可以编译成 WinMD 文件,然后在 HTML/JavaScript 项目里引用。InfoQ 之前已经

    详细报道过这个特性了。

  • 异步方法:使用 async 和 await 关键字写异步任务更加简单,这在去年 PDC 首次演示,然后再

    Async CTP 提供预览。

    这些文章深入地

    探索了这个特性。

  • Caller Info 特性:新的 CallerFilePath、CallerLineNumber 和 CallerMemberName 特性可以在可选方法参数上使用,协助获取调用方的详细信息,但不必从调用方法传递进来。

  • 编译器 API:这个特性应该在 C# 5.0 之后出来。这些 API 将会通过语法树 API、符号 API、绑定和流程分析 API 以及 Emit API 向 IDE 和开发者暴露编译器对代码的了解。你可以在这个

    Microsoft Research 的视频获得详细信息。

这些新特性可以使.NET 开发者的工作变得更加简单。比如说,下面这是实现属性更改通知的一个典型模式:

public class Customer : INotifyPropertyChanged

{

public event PropertyChangedEventHandler PropertyChanged;

private string _firstName;

public string FirstName

{

get { return _firstName; }

set { Set(ref _firstName, value, “FirstName”); }

}

private void Set(ref T field, T value, string memberName)

{

if (!object.Equals(field, value))

{

field = value;

if (PropertyChanged != null)

PropertyChanged(this, new PropertyChangedEventArgs(memberName));

}

}

}

这个模式的问题在于很容易把代码搞乱。如果你在 set 访问器里拼错属性的名字,或者你重命名了属性,那么它会悄然失效。

使用新的类似宏的特性可以避免这种失效:

public class Customer : INotifyPropertyChanged

{

public event PropertyChangedEventHandler PropertyChanged;

private string _firstName;

public string FirstName

{

get { return _firstName; }

set { Set(ref _firstName, value); }

}

private void Set(ref T field, T value,[CallerMemberName] string memberName = null)

{

if (!object.Equals(field, value))

{

field = value;

if (PropertyChanged != null)

PropertyChanged(this, new PropertyChangedEventArgs(memberName));

}

}

}

类似的,异步编程将会变得更简洁,也会变得更常用,触摸界面将会要求大多数方法都是异步的。Silverlight 开发者将会对此感到欣慰。另外,就像 Anders 演示的“Paste as VB”和“Paste as C#”,编译器 API 将会为.NET 工具开发商带来更多的可能性。有趣的时刻马上就到了!

查看英文原文: C#, VB.NET To Get Windows Runtime Support, Asynchronous Methods

2011-09-26 19:091688

评论

发布
暂无评论
发现更多内容

Lights Out for Mac(扩展节能器)v2024.1激活版

影影绰绰一往直前

dmgArchiver for mac(简单易用的压缩存档软件)v2024.2激活版

影影绰绰一往直前

200本金回血一万技巧

闵东升

一对一单带上岸回血导师

闵东升

一分大发单双大小回本回血的走势

闵东升

一对一单带上岸回血导师联系方式

闵东升

大发带回血一对一导师计划

闵东升

浅析如何加速商业业务实时化

百度Geek说

流式计算 企业号 4 月 PK 榜

Appriority for mac(CPU监测优化工具)v2024.1激活版

影影绰绰一往直前

JetBrains CLion 2024 for Mac(跨平台集成开发环境)v2024.1 RC中文激活版

影影绰绰一往直前

XXXX压大小单双平台赚钱软件XXX

闵东升

测试方案有点难?ChatGPT助你轻松编写测试方案!

霍格沃兹测试开发学社

200元回血一万技巧真实案例

闵东升

乐发平台注册下载安装手机版

闵东升

IT行业网络安全守护者-行云管家云堡垒机

行云管家

网络安全 IT 数据安全 堡垒机

测试领域革新:ChatGPT助你轻松编写测试方案!

测试人

软件测试 自动化测试 测试开发 ChatGPT

Trash X for mac(全功能垃圾桶清理软件)v2024.1激活版

影影绰绰一往直前

需求分析有点难,ChatGPT来帮你

霍格沃兹测试开发学社

1分1开大发单带回血上岸的导师

闵东升

500元回血一万技巧真实案例

闵东升

JustStream PRO for Mac(投屏软件)v2.9激活版

影影绰绰一往直前

Rumpus Pro 10 for mac(安全快速地ftp文件传输服务器)v10.0.7激活版

影影绰绰一往直前

MuteMic for mac(隐私保护软件)v1.0激活版

影影绰绰一往直前

【FAQ】HarmonyOS SDK 闭源开放能力 —Push Kit(2)

HMS Core

HarmonyOS

乐发app下载安装最新版

闵东升

再添一喜!行云管家堡垒机与人大金仓完成兼容性认证

行云管家

数据库 人大金仓 兼容 兼容认证

面试官:Redis如何实现延迟任务?

王磊

Java 面试题

ON1 Photo RAW MAX 2024 for Mac(RAW图像编辑器)v18.3.0.15302中文激活版

影影绰绰一往直前

ZOC8 for Mac(终端仿真器软件)v8.08.0激活版

影影绰绰一往直前

数字人直播系统源码:一次性购买+源码级交付!

青否数字人

数字人

商品管理避坑指南一览

第七在线

C#和VB.NET获得Windows Runtime支持和异步方法_.NET_Roopesh Shenoy_InfoQ精选文章