C#的数据类型

C#学习笔记——核心基础:从C到C# C#学习笔记——核心基础(1.2)从C到C# 标识符 规则与C语言相同,在此不再赘述 C#数据类型 值类型 C#的值类型可以分为简单类型、结构类型和枚举类型。 整数类型 类型标识符说明占用位数取值范围示例sbyte带符号字节型8-128~127sbyte i=10 ;byte无符号字节型80~255byte i=10 ;short带符号短整型16-32,768~32,767short i=10 ;ushort无符号短整型160~65,535ushort i=10 ;int带符号整型32-2,147,48 阅读详情
C#类型学习
C#类型概览

对C#的数据类型学习首先对整体做一个把握,C#数据类型的分类和层次如下所示 :

  • C#数据类型

  • 值类型
    1. 简单类型(Simple type)
      1. 整形
      2. 浮点型
      3. 十进制型(decimal)
      4. 布尔型(bool)
      5. 字符型(char)
    2. 结构类型(Struct type)
      1. struct
    3. 枚举类型(Enumeration types)
      1. enum
  • 引用类型
    1. 类(class)
    2. 接口(interface)
    3. 委托(delegate)
按照微软的划分,struct和简单类型组成Struct(结构)类型,而值类型由Struct(结构)类型和枚举类型组成。就我个人而言觉得以上划分更为合理,也便于学习,毕竟struct比起简单类型有更多要学习的东西。
值类型和引用类型的区别

值类型和引用类型最大的区别在于:值类型的变量总是包含该类型的值。对值类型变量赋值将创建所赋的值的一个副本,而对引用类型变量赋值将创建引用的副本,而不是引用对象的副本。其余的还有:

  • 所有的值类型均隐式派生自Object类。
  • 与引用类型不同,从值类型不可能派生出新的类型。但与引用类型相同的是,结构也可以实现接口。
  • 与引用类型不同,值类型不可能包含null值。
  • 每种值类型均有一个隐式的默认构造函数来初始化该类型的默认值。
以上是从MSDN中摘录的说明。到目前我我还不太清晰的是:“所有的值类型均隐式派生自Object类”。主要是对隐式派生未理解。另外也未查到相关的代码。
简单类型

对于简单类型,要特别说明的是:

  • 所有的简单类型均为.NET Framework系统类型的别名。即每一个简单类型都有相应的.NET Framework类型与之对应。(参见下表)
  • 简单类型可以使用文字初始化,也可以使用new调用默认的构造函数进行初始化。(使用默认函数初始化后的默认值可参见下表。)

所谓的两种初始化如下所示:

int myint; //声明变量
myint=0; //或者 myint=new int();

当然也可以声明和初始化一起完成。

int myint=0; //或者int myint=new int();
注意在C#中,局部变量不进行初始化是无法使用的。
struct类型

struct 类型是一种可包含构造函数、常数、字段、方法、属性、索引器、运算符、事件和嵌套类型的值类型。不知你有没有想过这个问题:“为什么需要struct”?确实,似乎有了class,更符合OO我们无须struct。看看MSDN中给我们的解释:struct类型适合表示如点、矩形和颜色这样的轻量对象。尽管可能将一个点表示为类,但结构在某些方案中更有效。例如,如果声明一个含有1000个点对象的数组,则将为引用每个对象分配附加的内存。在此情况下,结构的成本较低。没错,因为struct是值类型,所以它会更高效。

关于struct,还有一些东西要提醒大家:

  • 声明结构的默认(无参数)构造函数是错误的。系统总是提供默认构造函数初始化结构成员(默认值参考下表)。
  • 在结构中初始化实例字段是错误的。
  • 如果不使用 new,那么在初始化所有字段之前,字段将保持未赋值状态且对象不可用。
  • 结构不存在继承,但结构从基类Object继承。结构可实现接口,其方式同类完全一样。
  • 你可以对构造函数进行重载。

 

最后,再次提醒大家,struct是值类型,请在参数传递时注意这一点。另外,struct的数据成员(字段)可以是其他的引用类型。
枚举类型enum

一直用得最少的类型。看看,MSDN的解释:由一组称为枚举数列表的命名常数组成的独特类型。每种枚举类型均有一种基础类型,此基础类型可以是除 char 类型外的任何整型。要说的东西不多,感觉就是起到助记的作用。


C# 类型.NET Framework 类型说明取值范围默认值
boolSystem.Boolean布尔类型true|falsefalse
byteSystem.Byte无符号 8 位整数0 到 2550
sbyteSystem.SByte有符号 8 位整数-128 到 1270
charSystem.Char16 位 Unicode 字符U+0000 到 U+ffff'/0'
decimalSystem.Decimal十进制类型,28 到 29 位有效位±1.0 × 10-28 到 ±7.9 × 10280.0M
doubleSystem.Double双精度浮点数,15 到 16 位±5.0 × 10-324 到 ±1.7 × 103080.0D
floatSystem.Single单精度浮点数,7 位±1.5 ×10-45 到 ±3.4 × 10380.0F
intSystem.Int32有符号 32 位整数-2,147,483,648 到 2,147,483,6470
uintSystem.UInt32无符号 32 位整数0 到 4,294,967,2950
longSystem.Int64有符号 64 位整数-9,223,372,036,854,775,808 到 9,223,372,036,854,775,8070L
ulongSystem.UInt64无符号 64 位整数0 到 18,446,744,073,709,551,6150
shortSystem.Int16有符号 16 位整数-32,768 到 32,7670
ushortSystem.UInt16无符号 16 位整数0 到 65,5350
stringSystem.StringUnicode 字符的字符串  
objectSystem.Object 所有数据类型无论是预定义的还是用户定义的,均从 System.Object 类继承  
struct 结构类型 将所有的值类型字段设置为默认值并将所有的引用类型字段设置为 null 时产生的值。
enum 枚举类型 表达式 (E)0 产生的值,其中 E 为 enum 标识符。
Sql Server 数据类型C# 数据类型对照 Sql Server 数据类型C# 数据类型对照已验证类型(Sql Server 2012 & Visual Studio 2013) Sql Server C# 简写 bigint System.Int64 long tinyint System.Byte byte binary(50) System.Byte[] byte[] image 阅读详情

相关推荐

C#语言数据类型

C#数据类型系统是灵活且强大的,了解各种数据类型对于编写高效、可靠的代码至关重要。无论是基本数据类型、值类型与引用类型的区别,还是数组与集合的使用,以及类型转换的技巧,都是C#编程中的重要知识领域。希望本文能为读者提供对C#数据类型更深入的理解,帮助您在今后的编程过程中更加游刃有余。通过不断的实践和学习,您将能够利用C#的特性,撰写出更为高效的代码。

2501_90231171的博客 569

C#--数据类型

我们学习一个新知识时,在我们知道"它是什么?它的作用?学习它有什么意义?"的情况下,相信我们的兴趣会被提起来,我们的学习方向也会明确很多。 C#是什么,首先可以肯定的是它和C ,C++ ,Java一样都是程序语言C#和C++,Java有很多相似的地方,当然也有它独特的地方。但因为我没有学习过Java,C++,现在我对他们还没有认识,查阅了一些资料,但是,体会不大。大家可以通过360百科对他们有

张美红 1150

C#数据类型数据类型的转换

一、C#数据类型C# 中,变量分为以下几种类型: 值类型(Value types) 引用类型(Reference types) 指针类型(Pointer types) 1、值类型(Value types) 值类型变量可以直接分配给一个值。它们是从类 System.ValueType 中派生的。 值类型直接包含数据。比如 int、char、float,它们分别存储数字、字符、浮点数。当您...

CVSTO的博客 1573

【基础知识补充】C、C++、C#、Java中各基本数据类型范围

1、C语言 中: 字符类型:char 1个字节,占8位,2^8。范围:-128~127(有符号) 16进制表示:0x00~0x7F代表正数 0 ~ 127 0x80~0xFF代表负数 -128 ~ -1 短整型:short 2个字节,占16位,2^16。范围:-32768~32767(有符号) .........

van的博客 777

C#基本数据类型

1.数据类型分类 C#数据类型分为两大类:值类型和引用类型 其中值类型有13个,引用类型有2个 char为值类型,String为引用类型 两种类型都是由基本类object的发展而来 enum和struct为值类型 类、接口、数组、委托为引用类型 2.整型类型 整数类型的变量的值为整数,由于计算机存储单元有限,所以计算机语言只提供一定范围内的整数类型的值。 C#的整数类型:sbyte、byte、short、ushort、int、uint、long、ulong。划分的依据是根据该类型的变量在内

Yangzijiand的博客 1万+

C#介绍及基本数据类型

一、C#介绍 1、C#是微软公司发布的一种由C和C++衍生出来的面向对象的编程语言、运行于.NET Framework和.NET Core(完全开源,跨平台)之上的高级程序设计语言。并定于在微软职业开发者论坛(PDC)上登台亮相。C#是微软公司研究员Anders Hejlsberg的最新成果。C#看起来与Java有着惊人的相似;它包括了诸如单一继承、接口、与Java几乎同样的语法和编译成中间代码再运行的过程。但是C#与Java有着明显的不同,它借鉴了Delphi的一个特点,与COM(组件对象模型)是直接集成

XiaoAGiao16的博客 494

C#基础】C# 数据类型总结

编程语言 C# 数据类型的介绍 。

好学若饥,谦卑若愚。 6893

C# 数据类型

C# 数据类型概述 C# 是一种强类型语言,其数据类型主要分为值类型、引用类型和指针类型。值类型(如 int、float)直接存储数据在栈中,具有明确的数值范围和默认值。引用类型(如 string、object)存储内存地址在堆中,支持动态类型检查。指针类型用于不安全代码,直接操作内存地址,需在 unsafe 块中使用。理解这些类型的特点和适用场景对编写高效、安全的C#代码至关重要。

m0_57545130的博客 1212

C#数据类型(详细)

定义:指定一组函数成员而不实现成员的引用类型,其它类型和接口可以继承接口。接口使用interface关键字声明,它与类的声明类似。接口声明默认是 public 的。以上代码定义了接口 IMyInterface。通常接口命令以 I 字母开头,这个接口只有一个方法 MethodToImplement(),没有参数和返回值,当然我们可以按照需求设置参数和返回值。

Seike_113的博客 5277

C#数据类型

C# 语言中内置了一些基本的数据类型数据类型用来指定程序中变量可以存储的数据的类型。不同编程语言数据类型都有所不同,下面让我们来了解一下C#数据类型

懒羊羊我小弟的博客 8966

C#数据类型查看

C#数据类型查看需要 使用Type类 int num = 1; Type num1 = num.GetType(); Console.WriteLine(num1); 输出:System.Int32 其他数据类型基本同上 也可以直接使用GetType()方法 int num = 1; Console.WriteLine(num.GetType()); string str1 = "你好"; Console.WriteLine(str1.GetType()); bool bool1 = true; Cons

weixin_44022365的博客 4058

SQL和C#数据类型

开发工具与关键技术: SQL和C#数据类型 作者: 木有窝的鸟~小通 撰写时间:2019年5月23日 数据类型俗称数据库的核心所在,在数据库和其他编辑软件都是必不可少的。而我们在开发的过程中,在设置数据的时候,经常会碰到数据类型的选择,都需要正确选择数据类型。不同数据信息存放在数据库中,都要设定不同的数据类型。而数据类型相当于不同大小的容器,可以装载很多数据。 数据类型却有能分很多种,现在所学的一...

weixin_44548473的博客 792
上一篇: 为Blog添加天气预报
JackKen
博客等级 码龄22年 1粉丝 5原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值