前言

找Cef资料时看到一个比较好的封装NanUI for Winform发布,让Winform界面设计拥有无限可能,下载代码后发现是Vs2015+C#6.0开发的,本机没有VS2015也不想安装。于是想给vs2013装个插件支持C#6.0的语法,http://stackoverflow.com/questions/27093908/how-to-enable-c-sharp-6-0-feature-in-visual-studio-2013 这里有个最佳答案如下图,最后想还是手动改一下代码把C#6.0的语法去掉。:

VS2013不支持的语法

新建一个vs2013的空白解决方案,添加现有项目NetDimension.NanUI,生成出现如下几类错误:

语法错误,应输入“,”
意外的字符“$”
无效的表达式项“[”

?.表达式

类、结构或接口成员声明中的标记“=”无效

首先看一下C#6.0新增了哪些新的特性C# 6.0可能的新特性及C#发展历程、https://msdn.microsoft.com/en-us/magazine/dn802602.aspx,然后逐个改造。

语法错误,应输入“,”

原有代码,用到的特性是:

    Dictionary<string, string> requirements = new Dictionary<string, string>()
{
["资源文件"] = "resources.exe"
};

新代码

    Dictionary<string, string> requirements = new Dictionary<string, string>()
{
{"资源文件", "resources.exe"}
};

意外的字符“$”

原有代码:

        if (localPath.StartsWith("/"))
localPath = $".{localPath}";

新代码:

            if (localPath.StartsWith("/"))
localPath = string.Format(".{0}", localPath);

类、结构或接口成员声明中的标记“=”无效

老代码

        [Category("NanUI")]
public bool NonclientModeDropShadow
{
get; set;
} = true;

新代码,在类的构造函数中赋值

        this.NonclientModeDropShadow = true;

?.表达式

老代码:

    protected override void OnClosed(EventArgs e)
{
messageInterceptor?.ReleaseHandle();
messageInterceptor?.DestroyHandle();
messageInterceptor = null; base.OnClosed(e); nativeForm?.ReleaseHandle();
nativeForm?.DestroyHandle(); }

新代码:

        protected override void OnClosed(EventArgs e)
{ if (messageInterceptor != null)
{
messageInterceptor.ReleaseHandle();
messageInterceptor.DestroyHandle();
}
messageInterceptor = null; base.OnClosed(e); if (nativeForm != null)
{
nativeForm.ReleaseHandle();
nativeForm.DestroyHandle();
}
}

总结

C#6.0确实提供了一些新的特性,值得去体验,这里有个vs2015各版本下载的分享地址: http://pan.baidu.com/s/1eQk3s8i 想用的可以去下载。

把NetDimension.NanUI项目从C#6.0语法还原到C#5.0的更多相关文章

  1. 在一个空ASP.NET Web项目上创建一个ASP.NET Web API 2.0应用

    由于ASP.NET Web API具有与ASP.NET MVC类似的编程方式,再加上目前市面上专门介绍ASP.NET Web API 的书籍少之又少(我们看到的相关内容往往是某本介绍ASP.NET M ...

  2. error MSB4019: 未找到导入的项目“C:\Program Files (x86)\MSBuild\Microsoft\VisualStudio\v11.0\WebApplications\Microsoft.WebApplication.targets”

    error MSB4019: 未找到导入的项目“C:\Program Files (x86)\MSBuild\Microsoft\VisualStudio\v11.0\WebApplications\ ...

  3. vs打开项目出错:未找到导入的项目“C:\Program Files (x86)\MSBuild\Microsoft.Cpp\v4.0\BuildCustomizations\CUDA 5.0.props”的解决办法

    有时候由于CUDA升级或者下载的源码原创建项目的CUDA版本与自己的不同,在打开项目的时候发现加载不上,提示:未找到导入的项目“C:\Program Files (x86)\MSBuild\Micro ...

  4. 未找到导入的项目“C:\Program Files (x86)\MSBuild\Microsoft\VisualStudio\v14.0\DotNet\Microsoft.DotNet.Props”

    未找到导入的项目“C:\Program Files (x86)\MSBuild\Microsoft\VisualStudio\v14.0\DotNet\Microsoft.DotNet.Props” ...

  5. 错误 : 资产文件“项目\obj\project.assets.json”没有“.NETCoreApp,Version=v2.0”的目标。确保已运行还原,且“netcoreapp2.0”已包含在项目的 TargetFrameworks 中。

    升级 vs201715.6.3之后发布出现 错误 : 资产文件“项目\obj\project.assets.json”没有“.NETCoreApp,Version=v2.0”的目标.确保已运行还原,且 ...

  6. 项目从.NET 4.5迁移到.NET 4.0遇到的问题

    当把项目从.NET 4.5迁移到.NET 4.0时,遇到的问题和解决如下: 在"属性--应用程序--目标框架"设置成.NET 4.0版本. 重新生成项目,报有关EF的错: 卸载掉项 ...

  7. 关于 IDEA 启动 springboot 项目异常 - Disconnected from the target VM, address: '127.0.0.1:59770', transport: 'socket'

    关于 IDEA 启动 springboot 项目异常 - Disconnected from the target VM, address: '127.0.0.1:59770', transport: ...

  8. jackson2.5.0升级到2.7.0

    开发环境:spring-mvc4.1.7.jackson2.7.0 问题描述:项目中将原来的jackson2.5.0升级到2.7.0,导致服务调用出错. mvc相关的配置文件如下: <?xml ...

  9. Windows 8.0上Eclipse 4.4.0 配置CentOS 6.5 上的Hadoop2.2.0开发环境

    原文地址:http://www.linuxidc.com/Linux/2014-11/109200.htm 图文详解Windows 8.0上Eclipse 4.4.0 配置CentOS 6.5 上的H ...

随机推荐

  1. [译] 理解PHP内部函数的定义(给PHP开发者的PHP源码-第二部分)

    文章来自:http://www.hoohack.me/2016/02/10/understanding-phps-internal-function-definitions-ch 原文:https:/ ...

  2. maven仓库信息分析站点推荐

    maven是java的一个依赖,打包管理的工具,稍微大一点的java项目都需要使用maven. 随着java的壮大,maven仓库越来越大,仓库中的jar包有60多万,各种group,各种构件,各种版 ...

  3. windows命令——explorer

    转至http://www.cnblogs.com/ymind/archive/2012/03/30/explorer-command-args.html 今天才知道,explorer原来可以这样用, ...

  4. Atitit图像处理的用途

    Atitit图像处理的用途 1.1. 分类识别 (人脸检测,肤色识别,人类检测:1 1.2. 炫丽的动态按钮生成:色相旋转+自己的草书等图片合成,图片自动裁剪1 1.3. 集成调用自绘gui接口:识别 ...

  5. OpenCASCADE JT Assistant

    OpenCASCADE JT Assistant eryar@163.com Abstract. Siemens’ JT data format accepted as the world’s fir ...

  6. CSS3 Media Queries实现响应式布局

    概念我就不在这里写啦.大家可以看看以下网页: http://www.runoob.com/cssref/css3-pr-mediaquery.html http://www.w3cplus.com/c ...

  7. 前端学PHP之面向对象系列第五篇——对象操作

    × 目录 [1]对象克隆 [2]对象比较[3]对象串行化[4]json 前面的话 本文主要介绍面向对象中的一些对象操作 对象克隆 对象复制,又叫对象克隆,可以通过 clone 关键字来完成 在多数情况 ...

  8. Java基本语法练习

    1.编写程序,求100以内的全部素数. 实验源码: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 public class F ...

  9. DDD 主题交流会总结及计划

    思维碰撞才能更加进步 2015年5月16日(上周六),我们举行了一次 DDD 主题的交流会,参会者主要是 ENode 群友.以及部分园友,为什么要搞这次交流会?原因很简单,就是希望可以提供对 DDD ...

  10. 从零开始构建 Wijmo & Angular 2 小应用

    中秋之际,Angular 团队发布 Angular 2 正式版,一款不错的图表控件Wijmo当天宣布支持 . Angular 2移除和替代了 Angular 1.X 中的 directives, co ...