运算符是一种告诉编译器执行特定的数学或逻辑操作的符号。比如将两个数相加,或者比较两个数的大小,这时就需要设定一些符号来表示这两个数之间的操作关系。C#提供了许多运算符,可用于C#内置类型的基本操作。它们包括如下:算术运算符:对数值类型的数据执行算术运算;比较运算符:对操作数执行比较运算;布尔逻辑运算符:专门对bool类型的操作数执行逻辑运算;位运算符和位移运算符:对整数类型的数据执行位运算和位移运
在上一节中,我们介绍了变量的概念以及如何声明变量。当一个变量被声明,意味着在内存中开辟了一段内存,那么,这个变量在源代码中的哪些位置有效?换句话说,哪些代码段可以使用这个变量,这就是指变量的作用域。因为作用域定义了这个变量的可见性和生命周期。要了解变量的作用域,就必须要了解C#源代码的组织结构。如果把C#比作我们这个真实世界,那么,我引用一个与C#类似的例子。一个集团由多个子公司构成,一个子公司由
由于计算机的内存被划分成一个字节一个字节的排列和存储方式,类似小学生的作文本一样,一个格子就好比是一个字节,每个格子都有一个唯一的编号,这个编号就是内存地址。在C#中为了更方便的操作计算机内存,于是为这些格子进行了比较合理的分类。比如:如果程序员每次只申请一个格子,那就把这个格子取名为byte类型,这个byte类型表示1个字节,范围0-255;但是C#还规定了另一种数据类型sbyte类型,它也只占
在声明字段时,可以使用readonly关键字声明一个动态常量。readonly 关键字不同于 const 关键字。 const 字段只能在该字段的声明中初始化。 可以在字段声明和任何构造函数中多次分配 readonly 字段的值。 因此,根据所使用的构造函数,readonly 字段可能具有不同的值。但是,采用readonly修饰的字段或变量,也仅仅在声明时赋值或构造函数中赋值这两种途径。使用格式r
在C#中使用const关键字声明常量就是静态常量。是指编译器在编译时候会对常量进行解析,并将常量的值替换成初始化的那个值。哪些类型可以被const声明为常量呢?答案是C#的内置类型,但不包含System.Object。下面将这些能被const声明为常量的内置类型罗列出来。它们分别是:bool,byte,sbyte,char,decimal,double,float,int,uint,nint,nu
常量,顾名思义,不会改变的量。确切的说,在整个程序运行期间,这个量都不会发生改变。这些量在编译时是已知的,常量可以是任何基本数据类型,比如整数常量、浮点常量、字符常量、字符串常量、枚举常量、静态常量和动态常量,常量可以被当作常规的变量,只是它们的值在定义后不能被修改。若按类型区分,C#中的常量可以分为静态常量和动态常量两种。比如int a = 1 + 2;我们定义一个整型变量a,同时给它赋初值,这
Parse和TryParse是一对用来进行数据类型转换的方法,它们存在于各自的基础数据类型之中,它们都是静态方法,所以在使用时直接用类型进行限定。使用格式数据类型 变量 = 数据类型.Parse(字符串类型的值);所以,这两个方法只能将string类型转换成基础数据类型。比如我们需要将一个字符串转换成float浮点数据。string text = "12.85"; f
BitConverter主要功能是将基础数据类型转换为一个字节数组,以及将一个字节数组转换为基础数据类型。什么是数组?所谓数组,是有序的元素序列。 所以,字节数组就是由一些节字元素组成的集合,这个集合的名字就是数组名。例如:byte a = 0; byte b = 1; byte c = 2; byte d = 3; byte e = 4; byte f =
Convert类是C#提供的一个专门用于基本数据类型转换的工具。它是一个静态类型,能够将一种数据类型转换成另一种数据类型。不过,它们都是C#的基础数据类型。语法格式数据类型 变量2 = Convert.To数据类型(变量1);例如将一个字符串转换成bool型。var result = Convert.ToBoolean("True"); Console.WriteLine($"r
在C#中,将一种数据类型的值转换成另一种数据类型的过程称为类型转换。一共分为两种,分别是隐式类型转换和显示类型转换。显示类型转换又称为强制类型转换。什么是隐式类型转换?指将一个较小范围的数据类型转换为较大范围的数据类型时,编译器会自动完成类型转换,这些转换是 C# 默认的以安全方式进行的转换, 不会导致数据丢失。举个例子,肯德基的咖啡分为小杯和大杯两种,这就是两种不同的数据类型,代表量程不同。就算
在C# 3.0中提供了隐式类型var。隐式类型并不是一种真正意义上的数据类型,只是在声明变量或对象时,提供的一种”简写“语法。比如var i = 5;这时变量i的数据类型由等号后面的值决定,编译器很聪明,会根据等号后面的表达式的值推出变量的类型。var i = 5; Console.WriteLine($"i={i} , type={i.GetType()}"); var j
dynamic是C#4中引入的一种特殊类型,它可以让C#在编译时不检查对象调用了哪些操作。这表示可以绕过编译器的类型检查,并在运行时解析这些操作。dynamic类似于object类型,甚至在用法上部分相同。例如下面的代码object o = 99; dynamic d = 99; Console.WriteLine($"o的type:{o.GetType()}"); Consol
C#语言内置了3个引用类型,分别是string、object、dynamic。引用类型的变量又称为对象,可存储对实际数据的引用。实际数据是指存储在内存中某一段物理或逻辑上连续的空间上的数据,这段内存有一个首地址,而变量(或对象)保存了这个首地址(或指向首地址)。哪些关键字可以声明引用类型?classinterface委托string、object就是由class声明的引用类型。本节课我们将隆重介绍
string关键字表示一个字符串(零个或更多 Unicode 字符),它对应.NET的System.String。请注意,我们在前面的章节中所学习的bool、byte、short、int、long、float、double、decimal等基础数据类型都是值类型,因为它们都是以struct关键字声明和定义的,而string则是由class关键字声明和定义的,所以,string并不是一个值类型,而是
从技术上说,decimal表示一个浮点数值类型,它对应.NET基元类型中的System.Decimal,但是,C#语言规范中并没有将其定义为浮点类型。由于它在内存中占16个字节,所以它是一个128位的数据类型,可以存储介于-79228162514264337593543950335到-79228162514264337593543950335之间的有符号浮点数值,在数字后面带有m或M后缀用来表示d
Copyright © 2005-2024 51CTO.COM 版权所有 京ICP证060544号