天天看点

Docs-.NET-C#-指南-语言参考-关键字-内置类型-值类型:值类型的功能值类型(C# 参考)

ylbtech-Docs-.NET-C#-指南-语言参考-关键字-内置类型-值类型:值类型的功能
1.返回顶部

1、

值类型(C# 参考)

  • 2018/11/26

有两种值类型:

  • 结构
  • 枚举

值类型的主要功能

值类型的变量包含类型的值。 例如,

int

 类型的变量可以包含值 

42

。 它不同于引用类型的变量,后者(也称为对象)包含对类型实例的引用。 将新的值分配到值类型的变量时,会复制该值。 将新的值分配到引用类型的变量时,会复制引用,而不复制对象本身。

所有值类型都隐式派生自 System.ValueType。

与引用类型不同,不能从值类型派生新类型。 但是,与引用类型一样,结构可以实现接口。

值类型变量不能默认为 

null

。 但相应的可为空的值类型的变量可以为 

null

每个值类型都有一个隐式无参数构造函数,用于初始化该类型的默认值。 有关值类型的默认值的信息,请参阅默认值表。

简单类型

简单类型是 C# 提供的一组预定义的结构类型,其中包括以下类型:

  • 整型类型:整数类型和 字符型类型
  • 浮点类型
  • bool

简单类型通过关键字标识,但这些关键字只是 System 命名空间中的预定义结构类型的别名。 例如, int 是 System.Int32 的别名。 有关别名的完整列表,请参阅内置类型表。

简单类型不同于其他结构类型,简单类型允许某些附加操作:

  • 可以使用文本初始化简单类型。 例如,

    'A'

     是类型 

    char

     的文本,

    2001

     是类型 

    int

     的文本。
  • 可以使用 const 关键字声明简单类型的常数。 无法包含其他结构类型的常数。
  • 其操作数都是简单类型常数的常量表达式在编译时进行评估。

有关详细信息,请参阅 C# 语言规范中的简单类型部分。

初始化值类型

在使用 C# 中的本地变量之前,必须对其进行初始化。 例如,可以声明未初始化的本地变量,如以下示例所示:

C#复制

int myInt;
           

在未初始化之前,无法使用。 可以使用以下语句将其初始化:

C#复制

myInt = new int();  // Invoke parameterless constructor for int type.
           

此语句等效于以下语句:

C#复制

myInt = 0;         // Assign an initial value, 0 in this example.
           

当然,可以在同一语句中进行声明和初始化,如以下示例所示:

C#复制

int myInt = new int();
           

- 或 -

C#复制

int myInt = 0;
           

使用 new 运算符调用特定类型的无参数构造函数,并将默认值赋给变量。 在上述示例中,无参数构造函数将值 

 赋给 

myInt

。 有关通过调用无参数构造函数所赋予的值的详细信息,请参阅默认值表。

对于用户定义类型,使用 new 调用无参数构造函数。 例如,以下语句调用 

Point

 结构的无参数构造函数:

C#复制

var p = new Point(); // Invoke parameterless constructor for the struct.
           

进行此调用后,该结构被视为已明确赋值;即,它的所有成员都被初始化为其默认值。

有关 

new

 运算符的详细信息,请参阅 new。

有关设置数值类型的输出格式的信息,请参阅设置数值结果表的格式。

请参阅

  • C# 参考
  • C# 关键字
  • 引用类型
  • 可以为 null 的值类型

2、

2.返回顶部
3.返回顶部
4.返回顶部
5.返回顶部

1、

https://docs.microsoft.com/zh-cn/dotnet/csharp/language-reference/keywords/value-types

2、

6.返回顶部

作者:ylbtech

出处:http://ylbtech.cnblogs.com/

本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。