概述
- 匿名类型提供了一种方便的方法,可用来将一组只读属性封装到单个对象中,而无需首先显式定义一个类型。
- 类型名由编译器生成,并且不能在源代码级使用。
- 每个属性的类型由编译器推断。
- 可通过使用new运算符和对象初始值创建匿名类型。
- 匿名类型包含一个或多个公共只读属性。
- 包含其他种类的类成员(如方法或事件)为无效。
- 用来初始化属性的表达式不能为
null
、匿名函数或指针类型。 - 通常,当使用匿名类型来初始化变量时,可以通过使用var将变量作为隐式键入的本地变量来进行声明。
- 匿名类型是直接从对象派生的类类型,并且其无法强制转换为除对象外的任意类型。
var v = new { theName = "jpf", theAge = 24, theSex='M' };
Console.WriteLine("姓名:{0},年龄:{1},性别:{2}。",v.theName,v.theAge,v.theSex);
--->
姓名:jpf,年龄:24,性别:M。
- 可通过将隐式键入的本地变量与隐式键入的数组相结合创建匿名键入的元素的数组。
var arr = new[]{ new { theName = "jpfa", theAge = 24 }, new { theName = "jpfb", theAge = 25 } };
foreach (var item in arr)
{
Console.WriteLine(item);
}
--->
{ theName = jpfa, theAge = 24 }
{ theName = jpfb, theAge = 25 }
官方文档:
https://docs.microsoft.com/zh-cn/dotnet/csharp/programming-guide/classes-and-structs/anonymous-types
类初始化器
class Game
{
private string _theName;
public string TheName
{
get { return _theName; }
set { _theName = value; }
}
private char _theSex;
public char TheSex
{
get { return _theSex; }
set { _theSex = value; }
}
private int _theAge;
public int TheAge
{
get { return _theAge; }
set { _theAge = value; }
}
}
class Program
{
static void Main(string[] args)
{
Game game = new Game() { TheName = "jpf", TheAge = 24, TheSex = 'M' };
Console.WriteLine("姓名:{0},年龄:{1},性别:{2}。", game.TheName, game.TheAge, game.TheSex);
Console.ReadKey();
}
}
--->
姓名:jpf,年龄:24,性别:M。
最后
以上就是整齐菠萝为你收集整理的C# 二十五、匿名类型与对象初始化器(附带:类初始化器)的全部内容,希望文章能够帮你解决C# 二十五、匿名类型与对象初始化器(附带:类初始化器)所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复