C#预定义类型详解:值类型、引用类型与使用

需积分: 0 0 下载量 150 浏览量 更新于2024-08-03 收藏 5KB MD 举报
"C#预定义类型基础知识" C#是一种面向对象的编程语言,它提供了丰富的预定义类型,这些类型在编程中起到了基础性的作用。预定义类型包括数值类、字符串类、数组等,它们都是C#语言的核心组成部分。了解并熟练掌握这些类型的基本用法对于编写高效、可靠的代码至关重要。 在C#中,类型主要分为两大类:预定义类和自定义类。预定义类是由C#语言本身提供的,如数值类型、字符串、数组等;而自定义类则是开发者根据需求自己定义的类,它们继承自`System.Object`基类,可以包含字段(field)、构造函数(constructor)以及方法(method)等成员。 自定义类可以通过`new`关键字进行实例化,例如`FirstClass firstCase = new FirstClass(0);`。实例化后,可以通过`.`操作符访问类的成员,如`firstCase.onePara`访问实例字段,`FirstClass.twoPara`访问静态字段。在类的成员调用中,静态成员属于类本身,而非单个实例,因此无需实例化即可访问。 类型还可以分为值类型和引用类型。值类型(如整数、浮点数、布尔值、字符等)在赋值时会在内存中创建新实例,修改值类型变量不会影响其他变量。值类型不能为null,除非是可空值类型(Nullable)。引用类型(如字符串、对象)则不同,赋值时只复制引用,改变引用所指向的对象会影响到所有引用该对象的变量。引用类型可以为null,表示不指向任何对象。 C#的数值类型包括有符号和无符号整数(如sbyte、byte、short、ushort、int、uint、long、ulong)、浮点数(float、double)、十进制数(decimal)以及布尔值(bool)和字符(char)。数值类型之间可以通过后缀进行明确指定,如`10f`表示浮点数,`10d`表示双精度浮点数,`10m`表示十进制数。在表示数值时,可以使用十六进制前缀`0x`,也可以在数字间插入下划线`_`提高可读性,如`1_000_000`。 数值之间的转换遵循类型层级,允许子类型向父类型隐式转换,如`int`可以自动转换为`double`,但反之需要显式转换。此外,小数向整数的转换会截断小数部分,不会进行四舍五入。 C#中的字符串是不可变的引用类型,由`System.String`类表示。数组也是引用类型,可以是一维或多维的,例如`int[] numbers = new int[5];`定义了一个整数数组。 预定义类型还包括泛型类型,如`List<T>`和`Dictionary<TKey, TValue>`,它们允许在运行时指定具体的类型参数,提供了一种强类型和高效的容器。指针类型在C#的安全模式下并不常用,但在unsafe代码块中可以用于低级别的内存操作。 理解并熟练使用C#的预定义类型是每个C#开发者的基础,它们构成了程序的基本构建块,决定了代码的效率和灵活性。通过深入学习和实践,开发者可以更好地控制程序的行为,写出更加高效和健壮的代码。