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# 动态绑定动态绑定会将类型,成员和操作的解析过程从编译时延迟到运行时。使用上下文关键字 dynamic 声明动态类型:dynamic d =...
C# XML文档文档注释是用于记录类型或成员的嵌入式XML。文档注释紧接在类型或成员声明之前,并以三个斜杠开头:/// summaryCancel...
C# 交错数组 C# 数组交错数组是数组的数组。您可以声明一个带有 int 值的交错数组 scores,如下所示:int [][] scores;声明一个...
C# Array 类 C# 数组Array 类是 C# 中所有数组的基类,它是在 System 命名空间中定义。Array 类提供了各种用于数组的属性和方法...