unity零基础入门(3-Unity入门学习之C基础2)

3-Unity入门学习之C#基础2

一、C#的数据类型

C#中,变量主要包含以下三种类型:

1.1、值类型

1.1.1、值类型介绍

①结构【struct】:包含(整型、浮点型、128 位数据类型(decimal)、布尔类型(bool)、用户定义的结构)
②枚举【enum】:
<1>基于值类型的变量直接包含值;将一个值类型变量赋给另一个值类型变量时,将复制包含的值;对于值类型,每个变量都具有其自己的数据副本,对一个变量执行的操作不会影响另一个变量(ref 和 out 参数变量除外,请参见 ref(C# 参考)和 out 参数修饰符(C# 参考))。
<2>所有的值类型均隐式派生自ValueType;
<3>值类型无法包含null值。但是,可以为null类型功能允许值类型分配null;
<4>每种值类型均有一个隐式的默认构造函数来初始化该类型的默认值;有关值类型的默认值的信息,请参见默认值表。
<5>所有的简单类型(C# 语言的组成部分)均为 .NET Framework 系统类型的别名。 例如,int 是 Int32 的别名。 有关完整的别名列表,请参见 内置类型表(C# 参考)。

编译时计算操作数均为简单类型常数的常数表达式。

可使用文字初始化简单类型。 例如,“A”是 char 类型的文字,而 2001 是 int 类型的文字。

unity零基础入门(3-Unity入门学习之C基础2)(1)

unity零基础入门(3-Unity入门学习之C基础2)(2)

unity零基础入门(3-Unity入门学习之C基础2)(3)

unity零基础入门(3-Unity入门学习之C基础2)(4)

1.1.2、初始化值类型

在使用 C# 中的局部变量之前,必须对其进行初始化;如下所示:
int number=0; //声明一个int类型的number变量且初始化值为0(这个比较常用)
或者可以使用
int number=new int();
使用 new 运算符时,将调用特定类型的默认构造函数并对变量赋以默认值。 在上例中,默认构造函数将值 0 赋给了 number。 有关通过调用默认构造函数所赋的值的更多信息,请参见默认值表。

1.2、引用类型

①引用类型的变量存储对其数据(对象)的引用。
②对于引用类型,两种变量可引用同一对象;因此,对一个变量执行的操作会影响另一个变量所引用的对象。
<1>下列关键字用于声明引用类型:
class
interface
delegate

unity零基础入门(3-Unity入门学习之C基础2)(5)

unity零基础入门(3-Unity入门学习之C基础2)(6)

unity零基础入门(3-Unity入门学习之C基础2)(7)

unity零基础入门(3-Unity入门学习之C基础2)(8)


<2>C# 也提供了下列内置引用类型:
dynamic:可以存储任何类型的值在动态数据类型变量中。这些变量的类型检查是在运行时发生的。比如:dynamic d = 20;
object:在 C# 的统一类型系统中,所有类型(预定义类型、用户定义类型、引用类型和值类型)都是直接或间接从 Object 继承的。 可以将任何类型的值赋给 object 类型的变量。 将值类型的变量转换为对象的过程称为“装箱”。 将对象类型的变量转换为值类型的过程称为“取消装箱”。
string:表示一个字符序列(零个或更多 Unicode 字符)。 string 是 .NET Framework 中 String 的别名。尽管 string 是引用类型,但定义相等运算符(== 和 !=)是为了比较 string 对象(而不是引用)的值。 这使得对字符串相等性的测试更为直观。 例如:

unity零基础入门(3-Unity入门学习之C基础2)(9)

unity零基础入门(3-Unity入门学习之C基础2)(10)

1.3、指针类型

指针类型变量存储另一种类型的内存地址。C# 中的指针与 C 或 C 中的指针有相同的功能。
比如:char* cptr; int* iptr;

1.4、微软官方文档

微软官方文档链接:https://docs.microsoft.com/zh-cn/previous-versions/s1ax56ch(v=vs.120)

二、C# 类型转换

类型装换就是从一种类型转换为另一种数据类型;C#中主要有2中装换:

2.1、隐式类型转换

隐式类型装换是C#默认的以安全方式进行的转换;比如:从小到大的整数类型的转换和从派生类到基类的转换。

unity零基础入门(3-Unity入门学习之C基础2)(11)


输出结果:

unity零基础入门(3-Unity入门学习之C基础2)(12)

2.2、显示类型装换

显示类型装换需要用户使用预定义的函数显式完成的。显式转换需要强制转换运算符。

unity零基础入门(3-Unity入门学习之C基础2)(13)


输出结果:

unity零基础入门(3-Unity入门学习之C基础2)(14)

2.3、C# 提供以下内置类型转换方法

unity零基础入门(3-Unity入门学习之C基础2)(15)

,

免责声明:本文仅代表文章作者的个人观点,与本站无关。其原创性、真实性以及文中陈述文字和内容未经本站证实,对本文以及其中全部或者部分内容文字的真实性、完整性和原创性本站不作任何保证或承诺,请读者仅作参考,并自行核实相关内容。