- r - 以节省内存的方式增长 data.frame
- ruby-on-rails - ruby/ruby on rails 内存泄漏检测
- android - 无法解析导入android.support.v7.app
- UNIX 域套接字与共享内存(映射文件)
Language feature implementation status通过 C# Chat 引起了我的注意.关于 this existing question 中未涵盖的一些功能,我有几个问题.
一些新特性是显而易见的,例如 Getter-only 自动属性
public int Y { get; } = y;
... 太棒了。
但是其他的我不清楚...
class Point(int x, int y) { … }
这可能是我的知识空白,但我以前没有遇到过“主构造函数”这个词,但是some research似乎暗示基本上这是定义以下内容的快捷方式
class Point
{
private int x;
private int y;
public Point(int x, int y)
{
this.x = x;
this.y = y;
}
}
最佳答案
- Is this the correct interpretation?
几乎,但不完全是。默认情况下,主构造函数参数不会被捕获到字段中;然而,它们可以在实例成员初始化器中访问(并且只能在那里),因此您可以使用它们显式初始化字段或属性:
class Point(int x, int y)
{
public int X { get; } = x;
public int Y { get; } = y;
}
(请注意,在这种情况下,支持字段是创建的,但用于属性,而不是构造函数参数)
但是您也可以使用访问修饰符声明参数,在这种情况下,它们将被捕获为字段,并且可以从所有实例成员访问:
class Point(public readonly int x, public readonly int y)
{
}
(如您所见,您还可以为字段指定其他修饰符,例如readonly
)
- Does this mean you can still do constructor overloads (the term "primary" implies so)?
是的,您可以有其他非主构造函数。但是,它们都需要使用通常的 : this(...)
语法调用主构造函数。
- Can you refer to these implicit backing fields in other constructors/methods?
如上所述,没有隐式支持字段;仅当您在主构造函数参数上显式指定访问修饰符时,才会创建支持字段。
编辑:此功能已被撤销,不会出现在 C# 6 中(可能出现在 C# 7 中,形式略有不同)
关于c# - C# vnext 中的主构造函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22908005/
这个问题在这里已经有了答案: How to reference csproj from kproj (4 个答案) 关闭 8 年前。 是否可以从 ASP.NET vNext 项目引用非 vNext
所以我在 VS 14 CTP 中有一个 ASP .NET vNext 项目。我的目标是 .NET Framework 4.5.1。我添加了对 NuGet 包的引用,它没有特定于 vNext 的构建。
我们过去常常运行 XAML 构建,在那里您可以从一个构建开始另一个构建,例如让 GC 在之后运行集成测试工作流程等等。 在 VNext 中无法触发其他构建。我们怎样才能做到这一点? 最佳答案 此功能正
嗨,我目前正在一个使用 PCL 库的项目中工作,我们正在将所有内容迁移到 .net 标准。我正在阅读 .net 标准什么是,什么不是,什么支持或不支持,我遇到了著名的版本/平台表(more info)
我为目前支持 MVC 2 - MVC 5 的开源库做出贡献,我也希望支持 MVC 6(及更高版本)。为了支持每个版本的 MVC,我们利用了 Condition MSBuild 的功能,在进行构建时包含
我没有看到这方面的任何文档,但看起来在 vNext 中,您可以愉快地使用非静态方法 void Main() 编译和运行应用程序。实际上,新的控制台应用程序模板为您提供了一个非静态 Main。例如: p
前提:我认为这是 TFS 2015 中的错误/缺失功能 当我使用 TFS 网站创建一个新的 Build(非 xaml)定义时,我无法使用命令行调用它 TFSBuild start命令。 如果我创建了一
我们将 Release Management 2015 与 vNext 发布模板一起使用。我们为应用程序的每个部分部署了一个基于 Powershell DSC 的组件,事实上,我们部署了两个不同的应用
我正在我的构建服务器上运行大量测试,完成所有测试需要一个多小时。一个小时后,它目前失败了: The job running on agent xAgentNamex has exceeded the
目前,我正在处理一个大型旧项目,该项目在构建后事件中每个C#项目文件都有一个复制作业(使用C#编写的自定义工具)。 发布后事件看起来像 "$(MyEnvVar)\_Build\_Binaries\Co
是否有可能使用开放数据库,如 mysql、mariadb 或其他数据库以及 ASP.NET vNext? 也许是测试版驱动程序或类似的东西? 最佳答案 对于 ASP.NET vNext,您可以选择面向
我有一个 vNext 构建定义,其中指定了一个代理池。此代理池有不止一个代理。我想指定此构建定义要使用的代理编号 2。我如何确保针对特定构建定义使用特定构建代理来运行构建? 最佳答案 您可以向该特定构
我有一个 vNext 构建定义,其中指定了一个代理池。此代理池有不止一个代理。我想指定此构建定义要使用的代理编号 2。我如何确保针对特定构建定义使用特定构建代理来运行构建? 最佳答案 您可以向该特定构
我安装了 Visual Studio 2015 RC 来试用 ASP.Net vNext 模板。在“Web”部分,我注意到一个控制台应用程序显示为 我决定把它弄乱,我发现了一些有趣的点: 默认模板未将
Language feature implementation status通过 C# Chat 引起了我的注意.关于 this existing question 中未涵盖的一些功能,我有几个问题.
今天微软正式发布上SQL Server 2016 SP1,根据以往的SP1定律,可以在生产环境上使用了。打了SP1的标准版将具有企业版几乎所有的的功能。只有RAM 超过128GB或者超过24核心或者
构建 vNext 任务是对之前构建过程的巨大改进。不过,一个缺点是我无法将某些任务设为有条件的。我可以为每个组合创建一个额外的构建,但是如果我们必须更改构建的其他部分,这显然会严重扩展并导致大量额外的
我有一个在 Visual Studio 2015 RC 中运行的 MVC6 站点 我有一些静态 HTML 文件,我想提供给另一个网站。我想添加 CORS 支持(无需添加 Controller 并以这种
我一直在摆弄 vNext 并让示例项目运行起来。我创建了一个 Ubuntu 虚拟机,安装了所需的软件包,并使用 k run 让它全部运行起来。 (控制台应用程序)和 k kestrel (MVC 应用
我们正在开发一个 ASP.NET MVC 5 项目,该项目依赖于来自不同解决方案的项目。另一个解决方案是常见的类库,我们发布为 NuGet 包。当我们发布时,我们编译项目并从 NuGet 存储库中获取
我是一名优秀的程序员,十分优秀!