c# - 用于分配对象属性的语法糖
问题描述
我最近在C#
. 我不知道它的名字,但不知何故它会让我们免于打字new ClassName()
。这意味着以下代码段:
var myObject = new MyObjectClass
{
MyProperty = new MyPropertyClass
{
StrValue = "Foo"
}
}
可以改为:
var myObject = new MyObjectClass
{
MyProperty =
{
StrValue = "Foo"
}
}
没有new MyPropertyClass
了对吗?
顺便说一句:我正在使用C# 8.0
.
问题:此功能的名称是什么?虽然可以通过谷歌搜索知道该功能的名称的详细信息,但如果有人有一个简短的概述,那就太好了。
解决方案
看起来你的意思是Target-typed new expressions
。当类型已知或可以从使用中推断出来时,此功能允许省略构造函数的类型规范。
该功能将在 C# 9.0 中,它是.NET 5 开发平台的一部分。预定发布时间为2020年11月。
新语法将如下所示:
public class Person
{
public Vehicle Vehicle { get; set; }
}
public class Vehicle
{
public string Name { get; set; }
}
var person = new Person()
{
Vehicle = new ()
{
Name = "Car"
}
};
推荐阅读
- powershell - Powershell 日期计数错误
- r - R - 比较来自不同数据集的两列并获取新数据集
- java - JPA 带复合键非标准
- node.js - 如何在mongodb上建立嵌套关系?
- django - 如何将django表单指向pk?
- java - Geotools Sld TextSymbolizer 将文本绘制到错误的位置
- sql - 从 Postgres 中 JSON 对象的最后一个对象中检索值
- sql - SAP IQ 16.0 中的闪回表行
- arrays - 如何将一个服务的数组注入Angular中的另一个服务的数组
- reactjs - 发送 POST 请求时出错 - 端口是否正确?