微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

深入 C# 数据类型

1、常用数据类型

| **常用数据类型** | **Java** | **C#** | **举例**         |
| ---------------- | -------- | ------ | ---------------- |
| **整型**         | int      | int    | **年龄**         |
| **浮点型**       | float    | float  | **成绩**         |
| **双精度型**     | double   | double | **圆周率**       |
| **布尔型**       | boolean  | bool   | **是否少数民族** |
| **枚举类型**     | enum     | enum   | **颜色**         |
| **字符串**       | String   | string | **家庭住址**     |

数据类型按存储方式可分为两类:`值类型`和`引用类型 `

2、分析值类型和引用类型

值类型:

- 不同的变量会分配不同的存储空间
- 存储空间中存储的是该变量的值
- 改变一个变量值不会影响另一个变量值

引用类型

- 赋值是把原对象的引用传递给另一个引用
- 两个引用指向同一块内存空间

如何解决引用类型改变会导致另一个对象改变的问题

复制数组:

- 循环遍历 将值进行复制
- Clone(); -->将数组进行复制

3、结构

1、什么是结构

一个值类型的类,所创建出的对象是值类型的

结构的特点:

值类型
具有较快数据提取速度
字段不能直接赋初值
可以有成员方法

2、创建结构

结构中有字段,也可以有方法

~~~C#
[修饰符] struct [结构名]{
    //字段
    
    //成员方法
}
~~~

3、创建结构对象

1、不需要new

2、赋值与调用方法和普通类无差别

~~~C#
Student stu;      //创建学生结构

stu.id = 1001;  //给学号赋值
stu.age = 20;   //给年龄赋值

stu.Show();  //调用结构的方法  
~~~

经验:

当对象需要用较少的字段来表示时,可以选用结构
  结构是值类型,数据提取速度快
  但是频繁的赋值操作会占用较大空间, 在开发中多数情况下都定义为类!!!

4、装箱和拆箱

值类型和引用类型之间的转换

~~~C#
static void Main(string[] args)
{
    int i = 123;
    object o = i;  // 装箱
    int j = (int)o;  //拆箱
}
~~~

5、值传递和引用传递

5.1、值传递

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

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

5.2、引用传递

使用引用传递,在方法中对参数值的更改在调用后能保留;(前提不改变引用)
 

原文地址:https://www.jb51.cc/wenti/3287804.html

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐