举报投诉联系我们 手机版 热门标签 编程学
您的位置:编程学 > c#值类型和引用类型 C# 匿名类型

c#值类型和引用类型 C# 匿名类型

2023-02-24 02:18 C#教程

c#值类型和引用类型 C# 匿名类型

c#值类型和引用类型

C#中的数据类型可以分为值类型和引用类型。

值类型是指在内存中存储的是变量的实际数据,而不是变量的引用。它们包括整数、浮点数、布尔、字符、枚举、结构体等。这些都是C#中内置的值类型,也可以自定义一些新的值类型。

引用类型是指在内存中存储的是变量的引用,而不是变量的实际数据。它们包括对象、数组、委托、字符串以及其他自定义引用类型。

// 值类型 
int a = 10; 
float b = 10.5f; 
bool c = true; 
char d = 'a'; 
enum e { one, two, three }; 
struct f { int x; int y; }; 
// 引用类型 
object g = new object(); 
int[] h = new int[10]; 
delegate i MyDelegate(); 
string j = "Hello World";

C# 匿名类型

C# 匿名类型

匿名类型是由编译器在运行时创建的一个类,用于存储一组值。

要创建匿名类型,请使用 new 关键字,后跟对象初始值设定器,指定类型将包含的属性和值。

例子

例如:


var person = new { Name = "Jack", Age = 23 };

您必须使用 var 关键字来引用匿名类型,因为它没有名称。

可以从表达式推断匿名类型的属性名称。例如:


int Age = 3;
var person = new { Name = "Jack", Age, Age.ToString().Length };

等效于:


var person = new { Name = "Jack", Age = Age, Length = Age.ToString().Length };

在同一个程序集中声明的两个匿名类型实例将具有相同的底层类型,如果它们的元素命名和类​​型相同:


var a1 = new { X = 2, Y = 4 };
var a2 = new { X = 2, Y = 4 };
Console.WriteLine (a1.GetType() == a2.GetType()); // True

Equals方法被覆盖以执行等式比较:


Console.WriteLine (a1 == a2); // False
Console.WriteLine (a1.Equals (a2)); // True

您可以按如下方式创建匿名类型的数组:


var persons = new[]{
    new { Name = "A", Age = 3 },
    new { Name = "B", Age = 4 }
};


阅读全文
以上是编程学为你收集整理的c#值类型和引用类型 C# 匿名类型全部内容。
声明:本站所有文章资源内容,如无特殊说明或标注,均为采集网络资源。如若本站内容侵犯了原著者的合法权益,可联系本站删除。
相关文章
© 2024 编程学 bianchengxue.com 版权所有 联系我们
桂ICP备19012293号-7 返回底部