深入.NET数据类型(2)
一.装箱和拆箱
将值类型转换为引用类型的过程称为装箱,反之称为拆箱


实际开发尽量避免 装/拆 箱
原因:
装/拆 箱都会降低程序性能
示例代码:
static void Main(string[] args)
{
;
object obj = num; //有装箱操作
int result = (int)obj; //拆箱操作
//要想拆箱,先有装箱。
}
二.不同类型的参数传递
1.值方式参数传递
1)使用值类型作为参数
以值类型作为参数进行值方式传递参数时,不能改变值类型参数的值
;
;
Console.WriteLine("交换前:num1的值{0}\tnum2的值{1}", num1, num2);
//最简单的两个变量交换
//借助第三方
Change(num1, num2);
Console.WriteLine("交换后:num1的值{0}\tnum2的值{1}", num1, num2);
static void Change( int num1, int num2)
{
int temp = num1;
num1 = num2;
num2 = temp;
}
2)使用引用类型作为参数
以引用类型作为参数进行值方式传递参数时,能改变引用类型参数的值
static void Main(string[] args)
{
Voter voter = new Voter();
SE se = new SE();
se.popularity = ;
voter.Vote(se);
voter.Vote(se);
Console.WriteLine(se.popularity);
}
public void Vote(SE se)
{
se.popularity++;
}
public class SE
{
public int popularity;
}
2.引用方式参数传递(ref)
1.使用引用类型作为参数
以值类型作为参数进行引用方式传递参数时,能改变值类型参数的值
;
;
Console.WriteLine("交换前:num1的值{0}\tnum2的值{1}", num1, num2);
//最简单的两个变量交换
//借助第三方
Changeref num1,ref num2);
Console.WriteLine("交换后:num1的值{0}\tnum2的值{1}", num1, num2);
static void Change(ref int num1,ref int num2)
{
int temp = num1;
num1 = num2;
num2 = temp;
}
2.使用引用类型作为参数
以值引用型作为参数进行引用方式传递参数时,能改变引用类型参数的值
static void Main(string[] args)
{
Voter voter = new Voter();
SE se = new SE();
se.popularity = ;
voter.Vote(ref se);
voter.Vote(ref se);
Console.WriteLine(se.popularity);
}
public void Vote(ref SE se)
{
se.popularity++;
}
public class SE
{
public int popularity;
}
深入.NET数据类型(2)的更多相关文章
- 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学习心得(五) 运 ...
随机推荐
- 完成你的第一个superMap示例
1.从官网下载superMap安装包,我选择setup包 2.解压压缩文件后,按照readme指导书,运行setup.exe进行安装 解压后压缩包包含文件: 执行setup.exe进行安装,其中Sup ...
- (转)Python 日期和时间
转自http://www.runoob.com/python/python-date-time.html Python 日期和时间 Python 程序能用很多方式处理日期和时间,转换日期格式是一个常见 ...
- vue.js初学,笔记1,安装
最近学习vue.js,下面是笔记: 说明:因为npm安装插件是从国外服务器下载,受网络影响大,可能出现异常,如果npm的服务器在中国就好了,所以我们乐于分享的淘宝团队干了这事.来自官网:"这 ...
- Java SE 8 流库
1. 流的作用 通过使用流,说明想要完成什么任务,而不是说明如何去实现它,将操作的调度留给具体实现去解决: 实例:假如我们想要计算某个属性的平均值,那么我们就可以指定数据源和属性,然后,流库就可以对计 ...
- java-8u151-64安装与配置环境变量
去oracle官网下载 java jdk for developments(最新发布的java9与java8有很大差别,选择8就够用了) 我是装在默认的C盘里的,直接配置环境变量了 新建JAVA_HO ...
- Java开发小技巧(三):Maven多工程依赖项目
前言 本篇文章基于Java开发小技巧(二):自定义Maven依赖中创建的父工程project-monitor实现,运用我们自定义的依赖包进行多工程依赖项目的开发. 下面以多可执行Jar包项目的开发为例 ...
- 【Hdu3652】B-number(数位DP)
Description 题目大意:求小于n是13的倍数且含有'13'的数的个数. (1 <= n <= 1000000000) Solution 数位DP,题目需要包含13,且被13整除, ...
- Android之本地相冊图片选取和拍照以及图片剪辑
转载请注明出处:http://blog.csdn.net/loveyaozu/article/details/51160482 相信有非常多Android开发者在日常开发中,因为项目需求,须要我们的A ...
- Javascript--cookie创建与查看
创建cookie 以下代码将创建一个cookie,该cookie名称为UserName,值为Paul,过期时间为7天后(2015年6月29日) <span style="font-si ...
- IDEA使用--字体、编码和基本设置
IDEA这么高端的工具之前只是断断续续使用了一下,因为项目的开发都是在eclipse上,每次学习IDEA的使用都得上网搜索半天,今天自己整理一下,方便以后查阅. IDEA版本15.0.4 字体 界面字 ...