当前位置:首页 > 技能相关 > C#与C++ > 正文内容

c#高级编程 匿名类型

admin2年前 (2023-01-28)C#与C++2390 修订时间:2023-01-29 12:03:19

var与new关键字一起使用时,可以创建匿名类型。匿名类型只是一个继承自Object且没有名称的类。该类的定义从初始化器中推断,类似于隐式类型化的变量。

如果需要一个对象包含某个人的姓氏、中间名和名字,则声明如下:

var captain = new
{
FirstName = "James",
MiddleName = "T",
LastName = "Kirk"
};

这会生成一个包含FirstName、MiddleName和LastName属性的对象。如果创建另一个对象,如下所示:

var doctor = new
{
FirstName = "Leonard",
MiddleName = string.Empty,
LastName = "McCoy"
};

那么captain和doctor的类型就相同。例如,可以设置captain = doctor。只有所有属性都匹配,才能设置captain = doctor。

如果所设置的值来自于另一个对象,就可以简化初始化器。如果已经有一个包含FirstName、MiddleName和LastName属性的类,且有该类的一个实例(person), captain对象就可以初始化为:

var captain = new
{person.FirstName,
person.MiddleName,
person.LastName
};

person对象的属性名应投射到新对象名captain,所以captain对象应有FirstName、MiddleName和LastName属性。

这些新对象的类型名未知。编译器为类型“伪造”了一个名称,但只有编译器才能使用它。我们不能也不应使用新对象上的任何类型反射,因为这不会得到一致的结果。


 您阅读本篇文章共花了: 

免责声明
本站内容均为博客主本人日常使用记录的存档,如侵犯你的权益请联系:lifei@zaiheze.com 546262132@qq.com 沟通删除事宜。本站仅带访问端口形式使用,已杜绝搜索引擎爬取。

扫描二维码推送至手机访问。

版权声明:本文由LIFEI - blog发布,如需转载请注明出处。

本文链接:http://www.lifeiai.com/?id=281

分享给朋友:

相关文章

Web API的创建3年前 (2022-11-07)
C# 第四篇 数组定义3年前 (2022-11-15)
C# 第五篇 字符串3年前 (2022-11-15)
C# 第七篇 窗口与控件2年前 (2022-12-05)

发表评论

访客

◎欢迎参与讨论,请在这里发表您的看法和观点。