第二章 深入C#数据类型

深入C#数据类型

一、值类型和引用类型

 

 C#常用的数据类型

常用的数据类型

java

C# 

举例

整型

int

int

年龄

浮点型

float

float

成绩

双精度型

double

double

圆周率

字符串

String

string

家庭住址

布尔型

boolean

bool

是否为少数民族

枚举类型

enum

enum

颜色

 

1、值类型

每个值类型的对象都有一个独立的内存区域用于保存自己的值,值类型所在的内存区域成为栈,值类型主要包括基本数据类型(int float double…)不包含字符串和枚举类型等。

对于值类型,不同的变量会分配不同的空间,并且存储空间中储存的该是变量的值,赋值操作传递是变量值,改变一个变量的值是不会影响另一个变量的值。

值类型包括:

基本数据类型:int、long、float、double、char、bool

枚举类型:枚举enum

结构类型:struct

特点:数据直接存储在栈区

 

2、引用类型

引用类型包括数组、类和接口,字符串string等。

数组引用类型有两种案列

小结:对于引用类型,赋值是把原对象的引用传递给另一个引用,对于数值而言,当一个数字引用赋值给另一个数组后,这两个引用指向同一个数组,也就是指向同一块存储空间。

数组复制可以利用循环实现

引用类型:类、接口、数组

类:基类System.Object、字符串string、自定义类class

接口:interface

数组:int[],string[]

特点:数据存储在堆区,但是栈区也会分配内存空间,栈区存储的是堆区的地址。

 

 

 

结构的定义

访问修饰符 struct 结构名

{

//结构体

}

 

结构的使用

可以不用new,直接定义结构的对象即可

声明结构的对象后,必须个结构的成员赋初值

 

结构的使用经验

结构是值类型,声明结构变量就存储一个结构的新副本,即系统要开辟一块新的存储空间,

因此结构用得越多所消耗的存储空间也越多

 

装箱和拆箱

数据类型分为值类型和引用类型,两者仍然可以相互转换。

将值类型转换为引用类型的过程为装箱,反之为拆箱。

 

示例:

static void Main(string[] args)

{

int i = 123;

object o = i; //装箱

i = 456; //改变i的内容

Console.WriteLine(“值类型的值为 {0}”, i);

Console.WriteLine(“引用类型的值为 {0}”,o);

}

当改变i的值时,因为i是值类型,所以只能改变他自己的值,而无法修改引用类型object的类型

 

不同类型的参数传递

 

概述

使用值传递,在方法中对参数值得更改在调用后不能保留

使用ref方式传递,可以保留对参数值的更改

 

值方法参数传递

在值方法参数传递时,参数可以是引用类型,也可以是值类型

 

引用方式参数传递

在引用方法参数传递时,参数同样可以是引用类型,也可以是值类型。

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值