数据的显式隐式转换以及枚举、结构体和数组
来源:互联网 发布:嘉实优化红利基金净值 编辑:程序博客网 时间:2024/06/03 17:54
数据的显隐式转换
显式转换又称为强制转换,是由数值范围大的数据类型转换成数值范围小的数据类型,之所以需要强制转换,是因为范围大的数据转换成范围小的数据的时候,可能会造成溢出,编译器无法通过。
相对应的隐式转换则是由数值范围小的数据类型转换成数值范围大的数据类型,因为范围小,所以不用担心数值超出该数据类型的数值范围。
byte myByte = 123;int myInt = myByte; //隐式转换,小类型转换成大类型myByte = (byte)myInt; //显式转换(强制转换),大类型转换成小类型float myFloat = myInt;myInt = (int)myFloat;
关于int float double类型转换成字符串有两种方法
int myNum = 21231;//可以把int float double等类型转换成字符串string str2 = Convert.ToString(myNum);//int float double类型直接加上一个字符串,相当于转换成字符串 string str3 = myNum + "";
枚举、结构体和数组
枚举和结构体的定义都是在namespace空间下定义的
- 枚举
如何构建一个枚举类型
enum gameState:byte //可以修改枚举的存储类型,默认存储类型为int { Start, //第一个代表的值为0 Pause = 72, //代表的值可以修改 Success, Fail }
那么如何去使用一个枚举类型呢
gameState state = gameState.Start; if(state == gameState.Start) { Console.WriteLine("当前为游戏开始状态"); }
- 结构体
构建一个结构体的方法
struct position { public float x; public float y; public float z; }
如果不定义一个结构体,去定义一个目标的坐标将是这样
float enemy1X = 14;float enemy1Y = 16;float enemy1Z = 32;
如果目标有十个,那么代码就会弄得特别复杂。
那么枚举和结构体的区别在哪呢,放一段示范代码来看一下
struct position { public float x; public float y; public float z; } enum Direction { East, South, West, North } struct Path { public float distance; public Direction dir; } class Program { static void Main(string[] args) { position enemy1Position; enemy1Position.x = 35; Path p; p.distance = 1000; p.dir = Direction.East; } }
从这段代码可以看出
枚举就像一个类型能够选择的取值范围,而结构体类似于几个类型组合成的一个新的类型。
- 数组
数组,是无序的元素序列,用下标去区分数组里的各个元素。
有三种方法可以定义一个数组:
//第一种定义数组的方法int[] scores = { 12, 3, 54, 6, 6, 3, 4234, }; //要在数组声明的同时赋值//第二种定义数组的方法int[] scores1 = new int[10];int[] scores1;scores1 = new int[10];//第三种定义数组的方法int[] scroes2 = new int[10] { 12, 123, 123, 4, 3, 2, 32, 667, 8, 3 };
数组也可以是由其他类型组成的,如:
char[] c = { 'a', 'b' };string[] str = { "baidu", "tencent", "google" };
阅读全文
0 0
- 数据的显式隐式转换以及枚举、结构体和数组
- C#枚举 枚举和int以及string类型之间的转换 结构 重载 全局变量
- 数组、结构和枚举
- 黑马程序员-学习枚举、结构体和数组的笔记
- json数据和数组的转换,以及访问
- C#初级篇---类型转换、枚举、结构体、数组、函数、
- C/C++结构体struct 与结构体数组和枚举型enum的结合使用
- C#结构体和字节数组的转换
- C#结构体和字节数组的转换
- C#结构体和字节数组的转换
- C#结构体和字节数组的转换
- C#结构体和字节数组的转换
- C# 结构体和字节数组的转换
- C#结构体和字节数组的转换
- C#结构体和字节数组的转换
- C#结构体和字节数组的转换
- C#结构体和字节数组的转换函数
- C# 结构体和字节数组的转换
- 解决Xcode删除文件或更改文件路径后 missing file 警告: “xx”is missing from working copy
- 计算机科学(一门科学领域)
- java判断一个Date时间在不在某段Date时间范围之内
- Ruby 操作文件大全
- Python 去除列表中重复的元素
- 数据的显式隐式转换以及枚举、结构体和数组
- Java作业-阶乘求和
- 9月7日云栖精选夜读:ApsaraDB for HBase性能/延时全面领先社区版本
- Oracle中insert into select和select into的用法(异常0RA-00905:missing keyword的解决)
- Caused by: java.lang.NoClassDefFoundError
- Python基础之文件读写和列表字典使用 ——《侠客行》文本分析
- vue事件修饰符
- Oracle--ORA-01012问题
- fatal error LNK1112: module machine type 'X86' conflicts with target machine type 'x64'