C# 预定义类型

开发工具与关键技术:Microsoft Visual Studio 2015、.NET 
撰写时间:2019年07月15日

预定义引用类型是对象和字符串。类型对象是所有其它类型的最根本的基础类型,而类型字符串要 用来说明 Unicode字符串数据。
预定义数据类型包括有符号和无符号整数类型、浮点数类型、二进制、字符和十进制类型。有符号整数类型有 sbyte、short、int和 long;无符号整数类型有 byte、ushort、uint和 ulong;而浮点类型有 float和 double。

二进制类型用来表示二进制数据:值或者是真或者是假。包含二进制使得编写自说明代码变得容易,并且也帮助消除所有由于我们在应当使用“==”时错误的使用了“=”造成的很普通的代码错误。在 C#中,下面的例子
int i = …;
F(i);
if (i = 0) // Bug: the test should be (i == 0)
G();
是非法的,因为表达式 i=0的类型是 int,而 if声明需要一个二进制类型的表达式。

Char类型用来说明 Unicode字符。某个 char类型变量说明一个单 16位 Unicode字符。 十进制类型适合应用在不能接受舍入误差计算中。通常的例子包括商业计算,例如税收计算和货币转 换。十进制类型提供了 28个有效位。
下面的表中列出了预定义类型,并且指出了如何为每一个类型赋值。
在这里插入图片描述
每一个预定义类型都是某个系统提供的类型的简写。例如,关键词 int是一个名为 System.Int32结构的简写。虽然更好的考虑是使用关键词而不是完全的系统类型名称,但是这两个名称可以交换使用。

例如 int的预定义数据类型在某些地方被认为是特别的,但在大多数地方会像其它结构一样被正确对待。操作符重载使得我们可以定义同预定义数据类型行为相同的类型。例如,一个 Digit结构可以支持与整数类型相同的数学操作,并且可以定义 Digit和预定义类型间的转换。

预定义类型可以允许操作符重载它们自己。例如,比较符==和!=对应不同的预定义类型有不同的语意:
• 如果两个 int类型的表达式代表了相同的整数据,它们被认为是相等的。
• 如果两个 object类型的表达式都指向相同的对象或者都是空的,它们被认为是相等的。
• 如果字符串实例有相同的长度并且在每个字符的位置都相同,或者都为空,这两个字符串类型 的表达式就被认为是相等的。
例子:

class Test
{
    static void Main()
    {
        string s = "Test";
        string t = string.Copy(s);
        Console.WriteLine(s == t);
        Console.WriteLine((object)s == (object)t);
    }
}

产生下面的输出
True
False
因为第一个比较符比较两个 string类型的表达式,而第二个比较符比较两个 object类型的表达式。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值