深入.NET数据类型(1)
时间:2022-05-04
本文章向大家介绍深入.NET数据类型(1),主要内容包括其使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。
一.值类型和引用类型
所有的值类型和引用类型的引用都存在“栈”中
1.值类型
命名空间:System.ValueType
值类型数据储存所在的内存区域成为栈
值类型主要包括基本数据类型和枚举类型,结构
值类型的赋值原理:
在栈上复制的真实值
实例代码:
//张浩和李明去年身高都是170cm,今年李明长到了180cm,张浩没有变化,
//输出去年和今年两人身高
int zhheight = 170;
int lmheigt = zhheight;
Console.WriteLine("去年张浩身高是{0}t李明的身高是{1}", zhheight, lmheigt);
lmheigt = 180;
Console.WriteLine("今年张浩身高是{0}t李明的身高是{1}", zhheight, lmheigt);
2.引用类型
命名空间:System.Onject
引用类型主要包括数组,类和接口,字符串等
储存在栈和堆中
堆上储存的真实对象本身真实对象的属性
示例代码:
int[] zhArray={170,60};
int[] lmArray = zhArray;
Console.WriteLine("去年张浩身高是{0},体重是{1}t李明的身高是{2},体重是{3}", zhArray[0],zhArray[1], lmArray[0],lmArray[1]);
Console.WriteLine("================我是高贵的分割线====================");
lmArray[0] = 180;
lmArray[1] = 70;
Console.WriteLine("今年张浩身高是{0},体重是{1}t李明的身高是{2},体重是{3}", zhArray[0], zhArray[1], lmArray[0], lmArray[1]);
//解决:
int[] zhArray = { 170, 60 };
int[] lmArray = new int[2];
for (int i = 0; i < zhArray.Length; i++)
{
lmArray[i] = zhArray[i];
}
Console.WriteLine("去年张浩身高是{0},体重是{1}t李明的身高是{2},体重是{3}", zhArray[0], zhArray[1], lmArray[0], lmArray[1]);
Console.WriteLine("================我是高贵的分割线======================");
lmArray[0] = 180;
lmArray[1] = 70;
Console.WriteLine("今年张浩身高是{0},体重是{1}t李明的身高是{2},体重是{3}", zhArray[0], zhArray[1], lmArray[0], lmArray[1]);
3.细分值类型和引用类型
类别 |
描述 |
|
---|---|---|
值类型 |
基本数据类型 |
整型:int |
&长整型:long | ||
浮点型:float 双精度:double | ||
字符型:char | ||
波尔型:bool | ||
枚举类型 |
枚举:enum |
|
结构类型 |
结构:strut |
|
引用类型 |
类 |
基类:System.Object |
字符串:string | ||
自定义类:class | ||
接口 |
接口:interface |
|
数组 |
数组:int[],string[] |
二.结构
1.定义:
语法:
访问修饰符 struct 结构名
{
//结构体
}
特点:
结构中可以有字段,也可以有方法
定义时,结构中的字段不能被赋初值
示例代码:
//定一个自己的结构体
public struct MyPointer
{
//成员 属性 结构体的成员变量不能有初值
private int age;
public int Age
{
get { return age; }
set { age = value; }
}
//结构体中可以定义方法
public void show()
{
}
}
2.使用
可以不用new。直接定义结构的对象即可
声明结构的对象后,必须给结构的成员赋初值
示例代码:
static void Main(string[] args)
{
//使用结构体
MyPointer pointer=new MyPointer();
pointer.Age = 20;
pointer.show();
}
3.使用经验
不推荐使用(结构用得越多所消耗的存储空间也越多)
三.构造函数
示例代码:
public class Player
{
//无参
private Player()
{
//归类:方法(方法)/函数 (面向过程)
}
//有参
public Player(string name)
{
//归类:方法(方法)/函数 (面向过程)
}
}
- 联想Z470黑化之路:硬件升级还能刷苹果Mac系统!
- 渗透测试TIPS之删除、伪造Linux系统登录日志
- 1分钟懂awk-技不在深,够用就行
- RChain节点通信机制
- Spark源码系列(一)spark-submit提交作业过程
- Android安全几道入门题目
- 挖洞经验 | 看我如何通过子域名接管绕过Uber单点登录认证机制
- Spark源码系列(二)RDD详解
- Spark源码系列(三)作业运行过程
- Spark源码系列(四)图解作业生命周期
- Spark源码系列(五)分布式缓存
- 看我如何基于Python;Facepp打造智能监控系统
- Spark源码系列(六)Shuffle的过程解析
- Spark源码系列(九)Spark SQL初体验之解析过程详解
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- python interpolate插值实例
- pandas.DataFrame.drop_duplicates 用法介绍
- python如何进入交互模式
- PHP静态方法和静态属性及常量属性的区别与介绍
- 详解PHP变量传值赋值和引用赋值变量销毁
- Keras 利用sklearn的ROC-AUC建立评价函数详解
- PHP如何防止XSS攻击与XSS攻击原理的讲解
- 如何验证python安装成功
- python三引号如何输入
- Python定义一个函数的方法
- keras 模型参数,模型保存,中间结果输出操作
- python判断是空的实例分享
- keras绘制acc和loss曲线图实例
- 基于Python实现2种反转链表方法代码实例
- Python smtp邮件发送模块用法教程