数据的显式隐式转换以及枚举、结构体和数组

来源:互联网 发布:嘉实优化红利基金净值 编辑:程序博客网 时间: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