C#基础--之数据类型

摘自:http://www.cnblogs.com/tonney/archive/2011/03/18/1987577.html

在第一章我们了解了C#的输入、输出语句后,我这一节主要是介绍C#的基础知识,本节的内容也是后续章节的基础,好的开端等于成功的一半。在你阅读完本章后,你就有足够的C#知识编写简单的程序了。但还不能使用继承或其它面向对象的特征。

本章主要针对以下几个部份来进行讲解:

   1、电脑是由什么来存储所使用的数据?

   2、基本数据类型有哪些?

   3、如何声明变量和赋值?

   4、变量和常量的区别?

   5、不同数据类型之间是如何转换的?

下面,我们现一个一个的来了解这些问题。

一、电脑是由什么来存储所使用的数据?

这个问题用一句话比较笼统的概括,那就是:电脑使用内存来记忆计算时所使用的数据。

在现实生活中的数据各种各样,整数、小数、字符串、字符等等,它们都类型是不一样的,所以你要想在计算机中使用这些类型,就必须在内存中为它申请一块合适的空间。

那有哪些数据类型是C#能使用的呢?我们一起来看一看.

 

二、基础数据类型有哪些

      首先要了解一点:C#认可的基础数据类型并没有内置于C#语言中,而是内置于.net Framework中。

如,在c#中声明一个int类型的数据时,声明的实际上是.net结构System.Int32的一个实例。这听起来似乎很深奥,但其意义深远:这表示在语法上,可以把所有的基础数据类型看作是支持某些方法的类。

类型实际上仍存储为基本类型。基本类型在概念上用.Net结构表示,所以肯定没有性能损失。

下面大家一起来了解一下C#中定义的内置类型,我们将列出每个类型,以及它们的定义和对应的.net类型(CTS类型)的名称。

c#有15个预定义类型,其中13个是值类型,两个是引用类型(string 和 object)

1、整型

   2、浮点类型

float数据类型用于较小的浮点数,因为它要求的精度较低。

double数据类型比float数据类型大,提供的精度也大一倍(15位)。

如果在代码中没有对某个非整数值(如12.3)硬编码,则编译器一般假定该变量是double。

如果想指定该值为float,可以在其后加上字符F(或f),如:

float f = 12.3F;

3、decimal类型

decimal类型专门用于进行财务计算,使用decimal类型提供的28位的方式取决于用户。

要把数字指定为decimal类型,可以在数字的后面加上字符M或(m),如:

decimal d=12.30M;

4、bool(布尔)类型

5、char字符类型

char类型的字变量是用单引号括起来的。     如'A'

如果把字符把在"A"(双引号)内,编译器会把它看作是字符串,从而产生错误。

6、(Object类型和字符串类型)

三、如何声明变量和赋值

   1、变量的定义:是指在程序的运行过程中随时可以发生变化的量

2、上面我们提到,变量在运行时当中是存在内存当中的,它是一个临时的存放场所。

那么在内存当中,可以存放如数字、字符串、日期等等各种类型的数据。

大家可以看一看这张图,它就把表示内存当中的一个状态。

简单的来说,变量就是表示内存当中的一块存储区域。

它会对应一个唯一的内存地址,但是我们在使用程序当时候,内存地址不好理解也不好记忆。

那么怎么办呢?

在日常生活当中我们都有一个名字,如"张三“、”李四“等,这些名字就是为了便于记忆。

那么同样,在程序当中,为了区别多个变量,那就需要为每个变量赋值一个简短,便于记忆的名字,

这就是变量名

   3、 C#中的变量的命名是是有规则的:

         1)、由字母、数字或下划线"_"组成

         2)、必须由字母下划线"_"开头,不能以数字开头

         3)、不能是c#中的关键字 如:int、string、bool、Main、class等 

         4)、区分大小写  如:小写的a  和  大写的A 是两个变量

     

      4、做为一个比较好的学习者,就必须遵守一些命名规范:

           1)、变量的名字要有意义,尽量用对应的英语命名,具有“见名知意“的作用。

                  如:姓名   变量取名为 name 或者 用拼单  xingMing,避免用a,b,c来进行命名。

           2)、避免使用单个字符作为变量名( 除在循环里面定的变量)

           3)、当使用多个单词组成变量名时,应该使用骆驼(Camel)命名法

骆驼(Camel)命名法:第一个单词的首字母小写,其它单词的首字母大写,如:myName,myAge

选择题:以下变量命名正确的是(     )

                  A、name、 _222*1、 9class、 public

                  B、_teacher、 void、 string、 myName

                  C、$Age、 corss、 fire、 _grade

                  D、_glass、 g23、 c_12、 my_first_2

  5、变量的声明和赋值

          1)定义变量的语法:

数据类型    变量名;      (定义一个年龄的变量,年龄是整数,所以变量定义如下:)

int          age;         [系统会根据数据类型,在内存中分配不同大小的存储空间]

每个数据类型后面,可以定义多个变量,如:(定义姓名、家庭地址、籍贯、民族)

                string name,address,origin,national ;

       2)为变量赋值语法:

               =           

              (这里的=号表示赋值运算符,把=号右边的值,赋值给左边的变量名,最后以一个;[分号]结束)

               如:年龄18岁,姓名为“小张",家庭地址为“重庆南坪XXX",

                      籍贯为“重庆",民族为“汉"

                age = 18 ;

                name = "小张" ;

                address = "重庆南坪XXX" ;

                origin = "重庆" ;

                national = "汉" ;

 四、变量和常量的区别

变量:是指在程序的运行过程中随时可以发生变化的量

常量:是指在程序在运行过程中不会发生变化的变量

       常量的特点:

                   1、必须在声明是赋值

                   2、不能在在程序运行时,给常量赋值

                   3、常量是静态的。不必须(实际上,是不允许)在常量声明中包含修饰符static 

 五、不同数据类型之间是如何转换的

       在C#中数据类型转换分为两种:1)隐式[又叫自动]类型转换     2)显式[又叫强制]类型转换

           举个简单例子:

           飞机场里面停飞机,这是理所当然,我们把这种叫做隐式[又叫自动]类型转换

   

           那如果我们反过来看一看,飞机里面装飞机场,这个在我们实际生活中,觉得这是根据不可能的,

           但是程序可能做到这一点,我们把这种叫做显式[又叫强制]类型转换

       在C#中数据类型转换分为两种:1)隐式[又叫自动]类型转换     2)显式[又叫强制]类型转换

           举个简单例子:

           飞机场里面停飞机,这是理所当然,我们把这种叫做隐式[又叫自动]类型转换

   

           那如果我们反过来看一看,飞机里面装飞机场,这个在我们实际生活中,觉得这是根据不可能的,

           但是程序可以做到这一点,我们把这种叫做显式[又叫强制]类型转换

 

           double和int之间就是(飞机场与飞机)这种关系,我们可以这样理解,double的取值范围比int要大得多

           所以double可以装得下int :

          int a=1234;   

          double b=a;   系统会把a整型变量的值赋值给double变量b.这就是隐式[又叫自动]类型转换

         那反过来:

         double a=1234;

         int b=a;        //系统编译时会报错,如图:

         

        

           那如何进行强制转换呢?c#提供了非常简便的方法,如:

          double a=1234;

          int b=(int)a;      //这样就强制把double类型,转换为int类型

         最后,再介绍一下,其它数据类型之间的转换(1、字符串转换为其它类型   2、任意类型之间的转换)

         1)、字符串转换为其它类型       

       语法:

        XX.Parse(字符串);         这里的xx代表的如:double,int,bool等

         举个例子来说明一下:

          string strValue="123.45";     //这是一个字符串,时面的值是"123.45"

          现要把它转换成小数类型,就可以使用double.Parse();来进行转换

         double dValue=double.Parse(strValue);

       2)、任意类型之间的转换

        语法:     

         Convert.ToXX(任何类型);

 

         如:把一个布尔类型转换为整型

                  bool a = true;
                  int b = Convert.ToInt16(a);
                 Console.WriteLine("转换后的结果是:"+b);  //转换后的结果是:1

C#基础--之数据类型的更多相关文章

  1. page74-泛型可迭代的基础集合数据类型的API-Bag+Queue+Stack

    [泛型可迭代的基础集合数据类型的API] 背包:就是一种不支持从中删除元素的集合数据类型——它的目的就是帮助用例收集元素并迭代遍历所有收集到的元素.(用例也可以检查背包是否为空, 或者获取背包中元素的 ...

  2. JavaScript基础:数据类型的中的那些少见多怪

    原文:JavaScript基础:数据类型的中的那些少见多怪 Javascript共有6种数据类型,其中包括3个基本数据类型(string,number,boolean).2个特殊数据类型(undefi ...

  3. Python基础之数据类型

    Python基础之数据类型 变量赋值 Python中的变量不需要声明,变量的赋值操作既是变量声明和定义的过程. 每个变量在内存中创建,都包括变量的标识,名称和数据这些信息. 每个变量在使用前都必须赋值 ...

  4. java基础(数据类型,运算符)

    java基础之数据类型(变量) java中存在的数据有常量和变量 常量:在程序执行的过程中其值不可以发生改变 常量的分类 字面值常量 字面值常量的分类 常量 描述 字符串常量 用双引号括起来的内容 整 ...

  5. js基础--javaScript数据类型你都弄明白了吗?绝对干货

    欢迎访问我的个人博客:http://www.xiaolongwu.cn 数据类型的分类 JavaScript的数据类型分为两大类,基本数据类型和复杂数据类型. 基本数据类型:Null.Undefine ...

  6. Go语言基础之数据类型

    Go语言基础之数据类型 Go语言中有丰富的数据类型,除了基本的整型.浮点型.布尔型.字符串外,还有数组.切片.结构体.函数.map.通道(channel)等.Go 语言的基本类型和其他语言大同小异. ...

  7. 第二章:python基础,数据类型

    """第二章:python基础,数据类型2.1 变量及身份运算补充2.2 二进制数2.3 字符编码每8位所占的空间位一个比特,这是计算机中最小的表示单位.每8个比特组成一 ...

  8. C#基础 常用语&数据类型定义&类型转换

    int temp = Console.Read(); Console.WriteLine(temp); Console.Read(); Console.Write("  ");直接 ...

  9. python基础一数据类型之字典

    摘要: python基础一数据类型之一字典,这篇主要讲字典. 1,定义字典 2,字典的基础知识 3,字典的方法 1,定义字典 1,定义1个空字典 dict1 = {} 2,定义字典 dict1 = d ...

随机推荐

  1. 高吞吐量的分布式发布订阅消息系统Kafka--spring-integration-kafka的应用

    一.概述 Spring Integration Kafka 是基于 Apache Kafka 和Spring Integration来集成Kafka,对开发配置提供了方便. 二.配置 1.spring ...

  2. Core Animation一些Demo总结 (动态切换图片、大转盘、图片折叠、进度条等动画效果)

    前一篇总结了Core Animation的一些基础知识,这一篇主要是Core Animation 的一些应用,涉及到CAShapeLayer.CAReplicatorLayer等图层的知识. 先看效果 ...

  3. [原]quick2.25精灵变灰

    由于quick2.25没有导出shader相应的接口,所以2.25无法直接使用shader. 本文简单介绍如何导出相应接口,同时教大家使用shader 实现精灵变灰 一.编写静态函数,以供导出使用(直 ...

  4. HTML5+javascript实现图片加载进度动画效果

    在网上找资料的时候,看到网上有图片加载进度的效果,手痒就自己也写了一个. 图片加载完后,隐藏loading效果. 想看加载效果,请ctrel+F5强制刷新或者清理缓存. 效果预览:   0%   // ...

  5. Oracle 11g EM安全证书问题无法访问的解决办法

    OS: Windows Server 2012 Oracle: 11g R2 上一篇 Oracle 11g EM删除重建的方法 通过命令的方式重建了EM,启动也成功 emctl status dbco ...

  6. IE11兼容性设定

    增加browser文件,如下:  <browsers>   <browser refID="Default">     <capabilities&g ...

  7. 延迟渲染 deferred Shading

    流程: 1.先渲染一遍物体的位置,法线  和颜色  到三张纹理 2.在根据这三张纹理渲染一遍灯光 3.合成颜色图和灯光图  (ssao图) 看上去好像灯光不多,其实我在这里加了200个灯, 每个球代表 ...

  8. android手机出现sqlite3 not found的解决方法

    解决方法如下: 1.如果/system目录为不可读写的,需要挂载为读写: C:\Users\easteq>adb shell root@android:/ # mount -o remount, ...

  9. Python Django 开发 3 数据库CURD

    上一篇表建好后开始对数据进行CURD操作 dos输入: >>>python manage.py shell 以下的命令都是在shell中测试 (C)增: >>>im ...

  10. 解决Eclipse报errors running builder ‘javascript validator’ on project

    导入jquery的js到项目中,Eclipse每次检测到功能代码变化(保存动作触发)就报错: errors running builder ‘javascript validator’ on proj ...