38、我的C#学习笔记4
发布日期:2022-01-20 19:57:39 浏览次数:5 分类:技术文章

本文共 1387 字,大约阅读时间需要 4 分钟。

数据类型:

C#中的变量类型根据其定义可以分为两种:一种是值类型,一种是引用类型。这两种类型的差别在于数据的存储方式。值类型的变量本身直接存储数据。而引用类型则存储实际数据的引用,程序通过此引用找到真正的数据。

值类型变量直接存储其数据值,主要包含整数类型、浮点类型以及布尔类型。值类型变量在栈中进行分配,因此效率很高,使用值类型主要目的是为了提高性能。值类型有如下特性:

1、值类型都存储在栈中。

2、访问值类型变量时,一般都是直接访问其实例。

3、每个值类型变量都有自己的数据副本,因此对一个值类型变量的操作不会影响其他变量。

4、复制值类型变量时,复制的是变量的值,而不是变量的地址。

5、值类型变量不能为null,必须具有一个确定的值。

值类型是从System.ValueType类继承而来的类型。

整数类型:

整数类型用来存储整数数值,即没有小数部分的数值。可以是正数,也可以是负数。整数型数据在C#中有3种表示形式:分别为:十进制、八进制、十六进制。

其中八进制必须以0开头。比如:0123.

十六进制必须以0x0X开头。

C#中内置的数据类型为:sbyteshortintlong byteushort uintulong

浮点类型变量主要用于处理含有小数的数值数据,浮点类型主要包含floatdouble两种数值类型。

如果不做任何设置,包含小数点的数值都被认为是double类型。如果要将数值以float类型来处理,就应该通过强制使用Ff将其指定为float类型。

如果要将数值强制指定为double类型,则应该使用Dd进行设置。

布尔类型主要用来表示truefalse值。一个布尔类型的变量,其值只能是truefalse。不能将其它的值指定给布尔类型变量。布尔类型变量不能与其它类型之间进行转换。布尔类型通常被用在流程控制中作为判断条件。

引用类型:

引用类型是构建C#应用程序的主要对象类型数据。在应用程序执行过程中,预先定义的对象类型以new创建对象类型,并且存储在堆中。堆是一种由系统弹性配置的内存空间,没有特定大小及存活时间,因此可以备弹性地运用于对象的访问。引用类型就类似于生活中的代理商,代理商没有自己的产品,而是代理厂家的产品,使其就好像是自己的产品一样。

引用类型具有如下特征:

1、必须在托管堆中为引用类型变量分配内存。

2、使用new关键字来创建引用类型变量。

3、在托管堆中分配的每个对象都有与之相关联的附加成员,这些成员必须被初始化。

4、引用类型变量是由垃圾回收机制管理的。

5、多个引用类型变量可以引用同一个对象,这种情形下,对一个变量的操作会影响另一个变量所引用的同一个对象。

6、引用类型被赋值前的值都是null

7、所有被称为“类”的都是引用类型。主要包括:类、接口、数组和委托。

比如:创建一个控制台应用程序,在其中创建一个类C,在此类中建立一个字段Value,并初始化为0。然后,在程序的其它位置通过new创建对此类的引用类型变量。代码如下:

class Program

{

class C

{

public int Value=0;

}

public static void Main(string[] args)

{

C c1=new C();

c1.Value=100;

}

}

转载地址:https://blog.csdn.net/bingqinxingzhu/article/details/78354218 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!

上一篇:39、我的C#学习笔记5
下一篇:37、C#学习笔记3

发表评论

最新留言

留言是一种美德,欢迎回访!
[***.207.175.100]2024年03月11日 15时37分41秒

关于作者

    喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!

推荐文章

二重积分转换成极坐标_二重积分转换极坐标r的范围如何确定? 2019-04-21
python中倒背如流_八字基础知识--倒背如流篇 2019-04-21
以太坊地址和公钥_以太坊地址是什么 2019-04-21
linux查看wifi信号命令_linux – 获取WIFI信号强度 – 寻求最佳方式(IOCTL,iwlist(iw)等)... 2019-04-21
npm 不重启 全局安装后_解决修复npm安装全局模块权限的问题 2019-04-21
vs格式化json 不生效_vs code 格式化 json 配置 2019-04-21
go 字符串反序列化成对象数组_Fastjson 1.2.24反序列化漏洞深度分析 2019-04-21
onmessage websocket 收不到信息_WebSocket断开重连解决方案,心跳重连实践 2019-04-21
hibernate mysql 缓存_hibernate和mysql的缓存问题,没辙了! 2019-04-21
abp框架 mysql_ABP框架使用Mysql数据库 2019-04-21
mysql树形递归删除_使用递归删除树形结构的所有子节点(java和mysql实现) 2019-04-21
linux mysql 不能连接远程_linux mysql 远程连接 2019-04-21
mysql $lt_mongodb中比较级查询条件:($lt $lte $gt $gte)(大于、小于)、查找条件... 2019-04-21
install python_Install python on AIX 7 2019-04-21
jquery查找div下第一个input_jquery查找div元素第一个元素id 2019-04-21
如何修改手机屏幕显示的长宽比例_屏幕分辨率 尺寸 比例 长宽 如何计算 2019-04-21
mysql 的版本 命名规则_MySQL版本和命名规则 2019-04-21
no java stack_Java Stack contains()用法及代码示例 2019-04-21
java动态代码_Java Agent入门学习之动态修改代码 2019-04-21
python集合如何去除重复数据_Python 迭代删除重复项,集合删除重复项 2019-04-21