您的位置:首页 > 职场人生

黑马程序员.Net培训 C#基础知识——数据类型

2013-06-13 14:59 645 查看
                                             -------
Windows Phone 7手机开发、.Net培训、期待与您交流! -------

一、数据类型的分类



任何一种高级语言都有数据类型,数据类型是用来表达现实世界中的各种不同类型数据的

C#中的数据类型可以分为两种: 值类型(value type)和引用类型(reference type)

 

1、值类型归类如下:

      ●简单类型(simple type)

      ● 结构类型(struct type)

      ●枚举类型(enum type)

1.1、简单类型

         1.1.1、int(整型) 为有符号32位整数,取值范围在-2,147,483,648~ 2,147,483,647之间。

         1.1.2、char(字符型 是整型的一种特殊情况)char类型的数据,只能一次存放一个字符,字符要求用单引号引起来,如:char number='a',并且char类型不能为空,char number=null或者char number='';都是错误的 char可以隐式转换为ushort、int、uint、long、ulong、float、double或decimal。但是,不存在从其他类型到char类型的隐式转换。

         1.1.3、decimal(小数型)共128个二进制位,具有28至29位十进制有效数字。适用于金融、货币等需要高精度数值的领域。如果希望实数被视为decimal类型,请使用后缀m或M,例如:            

decimal myMoney=99.9m;

                           如果没有后缀m,数字将被视为double类型,从而导致编译器错误

        1.1.4、float/double(浮点类型)它们的差别在于取值范围和精度:

                   float: 取值范围在 1.5x10^-45~ 3.4x10^38之间, 精度为7位数。

                  double: 取值范围在 5.0x10^-324 ~ 1.7x10^308之间, 精度为 15~16 位数。

       1.1.5、string(字符串类型)要求用双引号""将字符串引起来。

       1.1.6、bool(布尔类型)只有两个值true和false
1.2、结构类型

1.3、枚举类型
 

2、引用类型归类如下:

        和值类型相比,引用类型不存储它们所代表的实际数据,但它们存储实际数据的引用。在C#中提供以下引用类型

       对象类型

       类类 型

       接口

       代表元

     

二、数据类型的转换

c#常见的类型转换可分为自动类型转换(隐式转换)和强制类型转换(显示转换)、不同类型之间的相互转换 三类。

1、自动类型转换

     1.1、参与运算(算术运算和逻辑运算)的操作数和结果类型必须一致。当不一致时,只要满足以下条件,系统自动完成类型转换

              ◎两种类型兼容  

                    例如:int和double兼容    

              ◎目标类型大于原类型

                   例如:double>int

                    int i = 20;

                    double d = i; //发生自动转换

               ◎对于表达式

                   如果一个操作数为double型,则整个表达式可提升为double型。

    

2、强制类型转换   

     2.1、语法:

           (数据类型名)待转换的值;   如:int b=(int)3.14;

     2.2、当将大类型变量赋值给小类型变量时必须使用强制类型转换,不能保证数据的精确度,例如:

double d=19.8;
int i=(int)d;//发生强制转换,此处会丢失数据精度。

  

     2.3、强制性转换的数据类型要兼容 

 

3、不同类型转换

     
如果是不同类型之间的相互转换则需要用到一些方法来辅助完成;

     ●tostring()方法 一切类型都可以转换成string类型

     ●Convert.toint32(待转字符串);

        int  变量=Convert.toint32(待转字符串)//把待转字符串转换成int类型后赋给变量。

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace ConsoleApplication4
{
class Program
{
static void Main(string[] args)
{
Console.WriteLine("请输入你的语文成绩:");
string chinese = Console.ReadLine();
Console.WriteLine("请输入你的数学成绩:");
string math = Console.ReadLine();

//  Console.WriteLine("你的总成绩为:{0}", chinese + math);//以这样的方法是错误的,同时体现了+的两种意义

int chineseScore = Convert.ToInt32(chinese);
int mathScore = Convert.ToInt32(math);

Console.WriteLine("你的总成绩为:{0}", chineseScore + mathScore);

Console.ReadKey();
}
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: