c#数据类型基础

1.值类型

值类型包括简单值类型和复合型类型。简单值类型可以再细分为整数类型、字符类型、实数类型和布尔类型;而复合类型则是简单类型的复合,包括结构(struct)类型和枚举(enum)类型。

整数类型















































数据类型

说明

取值范围

对应于System程序集中的结构

sbyte

有符号8位整数

-128-127

SByte

byte

无符号8位整数

0-255

Byte

short

有符号16位整数

-32768-32767

Int16

ushort

无符号16位整数

0-65535

UInt16

Int

有符号32位整数

-2147489648-2147483647

Int32

uint

无符号32位整数

0-42994967295

UInt32

long

有符号64位整数

-263-263

Int64

ulong

无符号64位整数

0-264

UInt64

字符类型

C#中采用Unicode字符集来表示字符类型。

实数类型


















数据类型

说明

取值范围

float

32位单精度实数

1.5*10-45-3.4*1038

double

64位双精度实数

5.0*10-324-1.7*10308

demcimal

128位十进制实数

1.0*10-28-7.9*1028

布尔(bool)类型

取值只能是ture或者false,bool类型对应于.NET类库中的System.Boolean结构。它在计算机中占4个字节,即32位存储空间。

结构类型

把一系列相关的信息组织成为一个单一实体的过程,这就是创建一个结构的过程。

struct person

{

string m_name;    //姓名

int m_age;            //年龄

string m_sex;       //性别

}

枚举类型

主要用于表示一个逻辑相关联的项和组合。使用关键字enum来定义。

enum Weekday

{

Sunday,Monday,Tuesday,Wednesday,Thursday,Friday,Saturday

}

2.引用类型

引用类型包括类(class)、接口(interface)、委托(delegate)和数组(array)。

类(class

类是一组具有相同数据结构和相同操作的对象集合。创建类的实例必须使用关键字new来进行声明。

(重点)类和结构之间的根本区别在于:结构是值类型,而类是引用类型。对于值类型,每个变量直接包含自身的所有数据,每创建一个变量,就在内存中开辟一块区域;而对于引用类型,每个变量只存储对目标存储数据的引用,每创建一个变量,就增加一个指向目标数据的指针。

接口(interface

应用程序之间要相互调用,就必须事先达成一个协议,被调用的一方在协议中对自己所能提供的服务进行描述。在C#中,这个协议就是接口。接口定义中对方法的声明,既不包括访问限制修饰符,也不包括方法的执行代码。

(注意)如果某个类继承了一个接口,那么它就要实现该接口所定义的服务。也就是实现接口中的方法。

委托

委托用语封装某个方法的调用过程。

委托的使用过程分为3步:

1.定义      delegate void HelloDelegate();

2.实例化 HelloDelegate hd = new HelloDelegate(p1.Say); //p1.Say调用的方法

3.调用      hd();

数组

数组主要用于同一数据类型的数据进行批量处理。在C#中,数组需要初始化之后才能使用。

如:int[] array1 = new int[3]{2,3,5};

int[] array1 = {2,3,5};

(注意)对规则多维数组,调用Length属性所得的值为整个数组的长度;而调用其GetLength方法,参数为0时得到数组第1维的长度,为1时得到数组第2维的长度,以此类推。而对于不规则多维数组,调用Length属性和以0为参数调用其GetLength方法,得到的都是第一维的长度。

3.类型转换

数值转换

       数值的转换有一个原则,即从低精度类型到高精度类型通常可以进行隐式转换;而从高精度类型则必须进行显式转换。

如:int i = 100;

long j = 1000;

j = i;        //隐式转换,由低精度到高精度的转换

i = (int)j; //显式转换,有高精度到底精度的转换

具体转换过程中信息的丢失就看各数据类型的精度了。(可以参考上面数据类型)

枚举转换

枚举类型与其他任何类型之间不存在隐式转换。而和枚举类型相关的显式转换包括:

1.从所有整数类型(包括字符类型)和实数类型到枚举类型的显式转换;

2.从枚举类型到所有整数类型(包括字符类型)和实数类型的显式转换;

3.从枚举类型到枚举类型的显式转换。

装箱和拆箱转换

主要是值类型与引用类型之间相互转换。

如:object obj 1= 10;

int i = (int)obj;       //拆箱

int j = 100;

object obj2 = j;     //装箱

转换检查

如果出现转换失败,程序就会抛出一个System.InvalidCastException异常

(0)

相关推荐

  • C#基础之数据类型转换

    int x; long y = 123456789101112; x = (int)y; Console.WriteLine(x); 输出结果: 我们知道long类型的取值范围是-9223372036854775805~+9223372036854775807:int类型的是:-2147483648~+2147483647 上面的代码中,由于long变量的值超过了int能容纳的最大值,造成了数据的丢失:像这样有可能造成数据丢失或引发异常的任何转换都需要执行显式转换(explicit); 相反的就

  • 数据库 数据类型float到C#类型decimal, float数据类型转化无效

    今天运行系统突然出错,数据类型转化无效,错误在system.data.sqlclient.get_decimal()方法,初步估计是数据库的float类型转换为c#的decimal类型时出错了,实体类使用的是decimal?类型,心想就算数据库里的数值是空,也不能出现转换错误啊. 网上百般搜索,很多人遇到类似情况,多数是直接去float类型时候出错,如(float)dr[0],后来看到有说应该是先转化成double,然后在转化成float就可以了 尝试了一下把实体类的decimal?类型的字段改

  • C#判断数据类型的简单示例代码

    C#判断数据类型的简单示例代码: 复制代码 代码如下: int   i   =   5; Console.WriteLine( "i is an int? {0}",i.GetType()==typeof(int)); Console.WriteLine( "i is an int? {0}",typeof(int).IsInstanceOfType(i));

  • C#的四种基本数据类型

    字符类型 char ,存储用''(单引号)括起来的一个字符,例如: char sex='男';//存储性别 字符串类型 string ,存储用""(双引号)括起来的一串字符,例如: string address="北京市宣武区牛街北口";//存储地址 整数类型 int ,存储整数,例如: int age=23;//存储年龄 双精度浮点型 double ,存储小数,例如: double salary=7991.63;//存储工资 以上四种是最常用的数据类型. 需要注意

  • c# 数据类型占用的字节数介绍

    bool -> System.Boolean (布尔型,其值为 true 或者 false) byte -> System.Byte (字节型,占 1 字节,表示 8 位正整数,范围 0 ~ 255) sbyte -> System.SByte (带符号字节型,占 1 字节,表示 8 位整数,范围 -128 ~ 127) char -> System.Char (字符型,占有两个字节,表示 1 个 Unicode 字符) short -> System.Int16 (短整型,

  • C#实现任意数据类型转成json格式输出

    直接贴代码: 复制代码 代码如下: /// List转成json   /// </summary>  /// <typeparam name="T"></typeparam>  /// <param name="jsonName"></param>  /// <param name="list"></param>  /// <returns></

  • 使用c#构造date数据类型

    /*********************************** 作者:trieagle(让你望见影子的墙) 日期:2009.8.14 注: 转载请保留此信息 ************************************/ 使用c#构造date数据类型 在sql server2005没有实现date类型,但是提供了很好的扩展性,可以利用CLR来构造date类型.有一部分是参考了Fc的代码写的. 步骤: 1.在vs 2005中新建项目,一次选择c#-->>数据库-->&

  • C# double和decimal数据类型以截断的方式保留指定的小数位数

    项目中要用到以截断的方式取小数点后两位,故写了以下方法: 复制代码 代码如下: /// <summary> /// 将小数值按指定的小数位数截断 /// </summary> /// <param name="d">要截断的小数</param> /// <param name="s">小数位数,s大于等于0,小于等于28</param> /// <returns></retur

  • 浅析C#数据类型转换的几种形式

    1.Convert.ToInt32(); //转换成32位的整数.2.变量.ToString();/最常见的转换成 字符串.3."订单"+2514 //后面的数字会转换为字符串.4.((类名A)对象名X) //强行将 对象X 转换成 A类 的对象.5.int.Parse(string);把字符串型转换成其他类型.6.还有,如果要转换成的类型为引用类型,还可以用 as teacher tea = teahcer();如 student stu = tea as student; (1)

  • JavaScript 变量,数据类型基础实例详解【变量、字符串、数组、对象等】

    本文实例讲述了JavaScript 变量,数据类型基础.分享给大家供大家参考,具体如下: 这篇笔记呢,咱记录下变量和数据类型的基础知识,因为两者有联系 所以放在一起记录 1 如何声明变量 变量声明使用var关键字,下面举一些变量声明的例子: <!DOCTYPE html> <html> <head> <title>learn javascript</title> </head> <body> </body> {

  • javascript数据类型基础示例教程

    js中的输入输出语句 方法 说明 归属 alert(msg) 浏览器弹出警示框 浏览器 console.log(msg) 浏览器控制台打印输出信息 浏览器 prompt(info) 浏览器弹出输入框,用户可以输入 浏览器 注:prompt(info)获取的输入都是字符串类型,跟python中的input()类似. <script> prompt("请输入:"); alert('你好呀!小可爱!'); console.log('阿牛最帅啦!'); </script>

  • c#数据类型基础

    1.值类型 值类型包括简单值类型和复合型类型.简单值类型可以再细分为整数类型.字符类型.实数类型和布尔类型:而复合类型则是简单类型的复合,包括结构(struct)类型和枚举(enum)类型. 整数类型 数据类型 说明 取值范围 对应于System程序集中的结构 sbyte 有符号8位整数 -128-127 SByte byte 无符号8位整数 0-255 Byte short 有符号16位整数 -32768-32767 Int16 ushort 无符号16位整数 0-65535 UInt16 I

  • Python基础之数据类型相关知识总结

    1.字符串 (1)概念 字符串英文名string,简称str. 字符串就是由一个个字符连接起来的组合, 你平时所见的字母.数字.汉字.符号都是字符. 字符串可以用来表示词.语句.甚至是数学公式.简单概括一下,所有单引号.双引号.三引号中的内容就是字符串,无论引号里面内容是中文.英文.法文.数字.符号.甚至是火星文. 代码演示1: name='小明' 代码演示2: print("hello") 在上面的代码中,小明和hello都属于字符串类型. (2)字符串拼接 字符串拼接的方法简单的很

  • javascript基础数据类型转换教程示例

    目录 数值型转换为字符串类型 字符串类型转换为数值型 转换为布尔型 结语 数值型转换为字符串类型 方式 说明 案例 toString() 转成字符串 var num =1; alert ( num.toString()); String() 强制转换 转成字符串 var num =1; alert ( String ( num )); 加号拼接字符串 和字符串拼接的结果都是字符串 var num =1; alert ( num +"我是字符串"); // 1.将数字型转换为字符串类型 var n

  • javaScript中一些常见的数据类型检查校验

    目录 前言 常见的几种数据校验方式 typeof操作符 instanceof constructor call && apply Object.prototype.toString结合Function.prototype.call && apply 其他校验数据类型的方法: 总结 源码地址 前言 在JavaScript中,数据类型分为两大类,一种是基础数据类型,另一种则是复杂数据类型,又叫引用数据类型 基础数据类型:数字Number 字符串String 布尔Boolean

  • swift语言Codable 用法及原理详解

    目录 Codable Codable 的用法 JSON 和 模型的相互转换 解码(JSON Data -> Model): 编码(Model -> JSON Data): Codable 支持的数据类型 基础数据类型 Date 嵌套对象 枚举 自定义 CodingKeys Codable 的原理 Decodable 协议 Container 核心原理分析(Container <--> JSON) JSONDecoder 的解码过程 编译器帮我们做了什么? 默认值问题 属性包装器 @

  • 零基础易语言入门教程(四)之数据类型

    我们一起了解下易语言的数据类型,跟我们现实生活是一样的,分为文本型和数值型,即是我们所说的文科生和理科生的区别. 参考文章:详解易语言中的数据类型 方法和步骤如下所示: 1.数值型(到数值命令): 使用该命令可将文本型等一类数据更改为数值型:我们来输入一行代码看看其作用: 2.到文本()命令: 我们先输入一行代码试试,见下图 3.小结: 每一行代码前后的数据类型必须转换为同一种,方可进行相连,相加,"+"在数据为文本型时是连接作用,数值型的跟数学里的符号一样. 以上所述是小编给大家介绍

  • 浅谈js基础数据类型和引用类型,深浅拷贝问题,以及内存分配问题

    js 深浅拷贝问题 浅拷贝一般指的是基本类型的复制 深拷贝一般指引用类型的拷贝,把引用类型的值也拷贝出来 举例 h5的sessionStorage只能存放字符串,所以要存储json时就要把json使用JSON.stringify()把json转换成string,然后再用JSON.parse()转换成json数据 缺点:JSON.parse和JSON.stringify只支持IE9+以上 解决这个问题可以使用深度比那里拷贝方法 js 中内存分配问题(堆和栈) js中基本类型类型一般是存储在栈中的.

  • JAVA基础之基本数据类型全面解析

    基本数据类型: 一.数值型 1)整数: 1.byte一个字节,8位,取值范围0~255,用于存放二进制数据. 2.short两个字节,16位,取值范围是在-32768~32767之间. 3.int四个字节,32位,取值范围为-2147483648~2147483648之间 4.long八个字节,64位,取值范围为 -9,223,372,036,854,775,808 ~9,223,372,036,854,775,807之间 2)浮点型: 1.float,四个字节,单精度浮点数,范围为-2^128

随机推荐