深入C#.NET数据类型
深入C#数据类型
--不同类型的参数传递使用值传递,在方法中对参数的更改在调用后不能保留。使用ref方式传递,可以保留对参数值的更改。 ---值方式参数传递和引用方式传递使用值方式(不用ref修饰)传递值类型参数时,参数在方法中的修改不会保留。使用值方式(不用ref修饰)引用类型参数时,参数在方法中的修改会保留。使用引用方式(不用ref修饰)传递值类型和引用类型参数时,参数在方法中的修改都会保留。
数据类型按存储方式可分为两类:值类型(栈)和引类型(堆)
值类型:不同的变量会分配不同的存储空间
存储空间存储的是该变量的值
改变一个变量值不会影响另一个变量值
引用类型:赋值是把原对象引用传递给另一个引用
两个引用指向同一块内存空间
结构的特点
1值类型
2具有较快数据提取速度(结构中可以有字段也可以有方法)
当对象需要较少字段表示时,可以选用结构
结构是值类型,数据提取速度快
但是频繁的赋值操作会占有较大的空间,在开发中多数情况下定义为类
值类型和引用类型之间的转换
装箱
值类型 ------> 引用类型
<------
拆箱
在实际开发中应该减少不必要的装箱和拆箱
因为二者的存储方式不同,转换时性能损失较大
不加ref传递参数,值传递,传递的是副本,不会改变原值
加ref把值类型按引用传递,传递的是引用地址,会改变原值
使用值传递,在方法中对参数值得更改在调用后不能保留;使用ref方式传递,可以将对参数值更改保留
java C#整形
int int浮点型
float float双精度行
double double字符串
Strinng string布尔类
boolean bool枚举类
enum enum
--值类型源于System.ValueType家族,每个值类型的对象都有一个独立的内存区域用于保存自己的值,值类型数据所在的内存区域称为栈(Stack)。只要在代码中修改它,就会在它的内存区域保存这个值。小结对值类型,不同的变量会分配不同的存储空间,并且存储空间中的存储的是改变量的值。赋值操作传递值的是变量的值,改变一个变量的值不会影响另一个变量的值。--应用类型源于System.Object家族在C#中引用类型主要包括数值,类的接口等。
示例--
classprogram{staticvoidMain(string[] args){5int[] infozhang =newint[] {,};//张浩的身高和体重信息
int[] infoli=infozhang;//数值引用赋值7
Console.WritLine("去年--张浩的身高{0},体重{1}",infozhong[],infozhong[]);
Console.WritLine("去年--李明的身高{0},体重{1}",infoli[],infoli[]);
infoli[]=;
infoli[]=;
Console.WritLine("今年--张浩的身高{0},体重{1}",infozhong[],infozhong[]);
Console.WritLine("今年--李明的身高{0},体重{1}",infoli[],infoli[]);13Console.ReadLine();} }
数组复制可以利用循环实现,对于两个数组arry1和arry2(arry2的长度不小于arry1的长度)将数组arry1中元素的值复制到arry2中。深入C#.NET数据类型的更多相关文章
- JavaScript 中的数据类型
Javascript中的数据类型有以下几种情况: 基本类型:string,number,boolean 特殊类型:undefined,null 引用类型:Object,Function,Date,Ar ...
- JS 判断数据类型的三种方法
说到数据类型,我们先理一下JavaScript中常见的几种数据类型: 基本类型:string,number,boolean 特殊类型:undefined,null 引用类型:Object,Functi ...
- Python高手之路【二】python基本数据类型
一:数字 int int(整型): 在32位机器上,整数的位数为32位,取值范围为-2**31-2**31-1,即-2147483648-2147483647 在64位系统上,整数的位数为64位,取值 ...
- UniqueIdentifier 数据类型 和 GUID 生成函数
UniqueIdentifier 数据类型用于存储GUID的值,占用16Byte. SQL Server将UniqueIdentifier存储为16字节的二进制数值,Binary(16),按照特定的格 ...
- SQL Server常见数据类型介绍
数据表是由多个列组成,创建表时必须明确每个列的数据类型,以下列举SQL Server常见数据类型的使用规则,方便查阅. 1.整数类型 int 存储范围是-2,147,483,648到2,147,483 ...
- 由js apply与call方法想到的js数据类型(原始类型和引用类型)
原文地址:由js apply与call方法想到的js数据类型(原始类型和引用类型) js的call方法与apply方法的区别在于第二个参数的不同,他们都有2个参数,第一个为对象(即需要用对象a继承b, ...
- python 数据类型 ----字典
字典由一对key:value 组成的 python中常用且重量级的数据类型 1. key , keys, values 字典由一对key:value 组成的 python中常用且重量级的数据类型 1. ...
- SQL数据类型
1.Character 字符串: 数据类型 描述 存储 char(n) 固定长度的字符串.最多8,000个字符. n varchar(n) 可变长度的字符串.最多8,000个字符. varchar ...
- 跟着老男孩教育学Python开发【第二篇】:Python基本数据类型
运算符 设定:a=10,b=20 . 算数运算 2.比较运算 3.赋值运算 4.逻辑运算 5.成员运算 基本数据类型 1.数字 int(整型) 在32位机器上,整数的位数为32位,取值范围为-2**3 ...
- 我的MYSQL学习心得(二) 数据类型宽度
我的MYSQL学习心得(二) 数据类型宽度 我的MYSQL学习心得(一) 简单语法 我的MYSQL学习心得(三) 查看字段长度 我的MYSQL学习心得(四) 数据类型 我的MYSQL学习心得(五) 运 ...
随机推荐
- Linux压力测试软件Stress安装及使用指南
一.Stress是什么 stress是一个linux下的压力测试工具,专门为那些想要测试自己的系统,完全高负荷和监督这些设备运行的用户. 二.安装 将stress的安装包上传并解压到linux服务 ...
- MyEclipse 使用图文详解
引言 某天在群里看到有小伙伴问MyEclipse/Eclipse的一些使用问题,虽然在我看来,问的问题很简单,但是如果对于刚刚学习的人来说,可能使用就不那么友好了.毕竟我在开始使用MyEclipse/ ...
- 初识java这个小姑娘(二)
妙解垃圾回收机制 周一,早高峰. 一段考验一个人耐力.智力.开车技术以及脾气的路. 我把车开进了一个没有红绿灯的丁字路口,然后就没有然后了. 来自三个方向的大车小车开始在不大的一块空间里开始互相斗智斗 ...
- 【Jquery】之DOM操作
Questions 本篇文章主要讲解Jquery中对DOM的操作,主要内容如下: 1 内容区 1.1 .addClass() (1).addClass(className) <!DOCT ...
- C#基础知识 简单说明泛型的优点
有关泛型的优缺点在网上有很多篇文章,也足以说明问题,我就不去复制粘贴了(而且内容有些多),由于记性不太好,所以自己做个简单明了的总结. 泛型的优点主要有两个: "性能" " ...
- ASP.NET Core 使用 Hangfire 定时任务
定时任务组件,除了 Hangfire 外,还有一个 Quarz.NET,不过 Hangfire .NET Core 支持的会更好些. ASP.NET Core 使用 Hangfire 很简单,首先,N ...
- mysql 常用sql语句 一
创建数据库 create database if not exists wsp_test default charset utf8 collate utf8_general_ci 使用数据库 use ...
- 开源组件NanUI一周年 - 使用HTML/CSS/JS来构建.Net Winform应用程序界面
NanUI是什么 NanUI基于ChromiumFX项目进行开发,它能让你在你的Winform应用程序中使用HTML5/CSS3/Javascript等网页技术来呈现用户界面(类似Electron). ...
- python爬虫入门学习
近期写的一个爬虫的Demo,只是简单的用了几个函数.实现了简单的爬取网页的功能(以途牛为例). import urllib2 import re import urlparse import robo ...
- 【CSS3】文本属性
<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title> ...