2012年6月25日

C#数据类型转换-数值字符串和数值之间的转换

摘要: 首先,我们得搞明白,什么是数值字符串。我们知道,在 C# 中,字符串是用一对双引号包含的若干字符来表示的,如 "123"。而 "123" 又相对特殊,因为组成该字符串的字符都是数字,这样的字符串,就是数值字符串。在我们的眼中,"123"即是一串字符,也是一个数,但计算机却只认为它是一个字符串,不是数。因此,我们在某些时候,比如输入数值的时候,把字符串转换成数值;而在另一些时候,我们需要相反的转换。将数值转换成字符串非常简单,因为每一个类都有一个 void ToString() 方法。所有数值型的 void ToString() 方法都 阅读全文

posted @ 2012-06-25 16:49 流星落 阅读(20826) 评论(0) 推荐(0) 编辑

C#中数据类型转换-显式转换

摘要: 显示类型转换,也称强制类型转换。通过显示数据转换,可以把取值范围大的数据转换为取值范围小的数据。using System;class ConvertTest{static void Main(){int num1=3;float num2=num1;double num3=45.24;int num4;num4=num1*(int)num3;Console.WriteLine("整数类型转化为浮点类型{0}",num2);Console.WriteLine("总价格为{0}",num4);Console.ReadKey();}} 阅读全文

posted @ 2012-06-25 16:48 流星落 阅读(438) 评论(0) 推荐(0) 编辑

C#中数据类型转换-隐式转换

摘要: 隐式转换:一般是低类型向高类型转化,能够保证值不发生变化。隐式数值转换:从 sbyte 到 short、int、long、float、double 或 decimal。 从 byte 到 short、ushort、int、uint、long、ulong、float double 或 decimal。从 short 到 int、long、float、double 或 decimal。从 ushort 到 int、uint、long、ulong、float、double 或 decimal。 从 int 到 long、float、double 或 decimal。 从 uint 到 long、ul 阅读全文

posted @ 2012-06-25 16:48 流星落 阅读(1489) 评论(0) 推荐(0) 编辑

C#枚举-避免不合理赋值

摘要: 什么是枚举?一年只能有12个月,每个星期只能从星期一到星期日,不能有别的日子,这些都是固定的值,不能随意变动。C#中处理这些数据就可以采用枚举。枚举是一组已经命名的数值常量,用来定义一组具有特定值的数据类型,枚举的定义方法如下:<访问修饰符> enum 枚举名称{枚举对象}public enum DayWeek{Sunday,Monday,Tuesday,Wednesday,Thursday,Friday,Saturday}这段代码定义了表示一周中包括星期几的枚举。enum是声明枚举的关键字,DayWeek是枚举的名称,大括号中的数据是枚举对象,枚举对象之间用“,”隔开。默认情况下 阅读全文

posted @ 2012-06-25 16:46 流星落 阅读(1090) 评论(0) 推荐(0) 编辑

C#数组-使用数组的索引

摘要: 定义的每个数组中有很多元素,如何有效地组织这些元素呢?其实每个数组元素都有一个编号,叫做数组索引,有时也称为数组下标。C#中数组的索引是从0开始的,最大索引等于数组长度减1。假设一个数组的长度为0,其索引从0开始,到n-1为止。C#通过索引来访问数组中的元素。using System;class Program { static void Main(string[] args) { string[] strName = new string[4]; //通过索引给每个数组元素赋值 strName[0] = "韦小宝"; strName[1] = "苏荃" 阅读全文

posted @ 2012-06-25 16:45 流星落 阅读(4439) 评论(0) 推荐(0) 编辑

C#数组-什么是数组

摘要: 现在有一个班的学生姓名需要存储,根据前面学过的方法,需要定义与这个班人数相同的变量来分别存储每一个学生的姓名。如下代码:string student1="张三";string student1="李四";string student1="王五";string student1="赵六";……string student1="刘九";这种方法虽然能够实现我们的目标,但是很麻烦。如果有成千上万的学生也用同样的方式去实现,那就更不行了。下面引入数组来解决这个问题。数组是具有相联系类型和名称的变量的集合 阅读全文

posted @ 2012-06-25 16:44 流星落 阅读(583) 评论(0) 推荐(0) 编辑

C#数组-数组的初始化

摘要: 数组和变量一样,在使用时必须对其进行初始化,即给变量或数组赋值。数组可以在定义时初始化,也可以在使用时初始化。下面的代码演示了如何初始化数组。int[] arrayInt={1,2,3,4}也可以用下面方式初始化数组:int[] arrayInt;arrayInt=new int{1,2,3,4}初始化数组还可将前面的方式组合起来,用这种方式初始化数组时,数组的大小必须与元素个数相同。如下所示:int[] arrayInt=new int[4] {1,2,3,4}注意:初始化数组时数组元素必须和数组声明的数据类型相同。 阅读全文

posted @ 2012-06-25 16:44 流星落 阅读(1134) 评论(0) 推荐(0) 编辑

C#装箱拆箱

摘要: C#中的数据类型包括值类型、引用类型和指针类型,而指针类型只有在不安全代码中使用。值类型包括简单类型、结构和枚举,引用类型包括类、接口、委托、数组和字符串等。为了保证效率,值类型是在栈中分配内存,在声明时初始化才能使用,不能为NULL,而引用类型在堆中分配内存,初始化时默认为NULL。值类型超出作用范围系统自动释放内存,而引用类型是通过垃圾回收机制进行回收。由于C#中所有的数据类型都是由基类System.Object继承而来的,所以值类型和引用类型的值可以相互转换,而这转换过程也就是所谓的装箱和拆箱。 装箱转换 装箱就是将一个值型变量隐式地转换为引用类型对象,虽然也可以显示转换,但一般都不需要 阅读全文

posted @ 2012-06-25 16:33 流星落 阅读(174) 评论(0) 推荐(0) 编辑

详解C#装箱与拆箱

摘要: 装箱(box)就是将值类型转换为引用类型的过程。而相反的过程就叫拆箱(unbox)。一、装箱操作 例如: int val = 100; object obj = val; Console.WriteLine (“对象的值 = {0}", obj); 这是一个装箱的过程,是将值类型转换为引用类型的过程。值类型被装箱时发生了什么?(1)在堆上分配内存。因为值类型最终有一个对象代表,所有堆上分配的内存量必须是值类型的大小加上容纳此对象及其内部结构(比如虚拟方法表)所需的内存量。(2)值类型的值被复制到新近分配的内存中(3)新近分配的对象地址被放到堆栈上,现在它指向一个引用类型。二、拆箱操作 阅读全文

posted @ 2012-06-25 16:32 流星落 阅读(269) 评论(0) 推荐(0) 编辑

既然 int是值类型,而 class是引用类型,那么int是怎样从Object派生的呢?

摘要: 是这样的,当int用作int时候,这是一个值类型(在栈上),然而,当它用作是Object时,这是一个引用堆上的整数值的引用类型。换而言之,当你将int看作对象时,运行层将它自动转化为对象引用,这个转化过程称作装箱(boxing)。这个转换包括将栈里的值拷贝到了堆里,并且新建了一个对象的实例来引用该值。拆箱操作(unboxing)是个反过程——将对象转化为基于栈的值类型。int x = 3;// 堆栈上新的int类型,值为3object objx = x;// 堆上新的int, 设定值为3,x=3仍然在堆栈上 int y = (int)objx;//新的int类型的值3在堆栈上,x=3在堆栈上, 阅读全文

posted @ 2012-06-25 16:31 流星落 阅读(265) 评论(0) 推荐(0) 编辑

导航