zoukankan      html  css  js  c++  java
  • 数据类型转换(装箱与拆箱)与常量

    隐式转换[自动类型转换]:

    两种类型要兼容,原类型值域要小于目标类型值域,可以简单的理解为由小转大。
    1 public class Test
    2 {
    3     private void Start()
    4     {
    5         int a = 10;
    6         float b = a;//int 类型隐式转换为 float 类型
    7     }
    8 }
     

    显示转换[强制类型转换]:

    两种类型要兼容,原类型值域要大于目标类型值域,可以简单的理解为由大转小。

    【缺点】:1、数据溢出。2、精度丢失。

    数值类型之间的转换。

    1 public class Test
    2 {
    3     private void Start()
    4     {
    5         float a = 1.5f;
    6         int b = (int)a;//float 类型强制转换为 int 类型
    7     }
    8 }

    其他类型转换成字符串类型调用ToString()方法。

     1 public class Test
     2 {
     3     private void Start()
     4     {
     5         float a = 1.5f;
     6         bool val = true;
     7         string str = val.ToString();//bool 类型强制转换为 string 类型
     8         str = a.ToString();//float 类型强制转换为 string 类型
     9     }
    10 }

    字符串类型转换为其他基本类型调用Parse()方法和TryParse()方法。

     1 public class Test
     2 {
     3     private void Start()
     4     {
     5         string str = "true";
     6         bool v = bool.Parse(str);//如果转换成功会将值赋给变量 v,如果转换不成功会报错。
     7         int num;
     8         bool val = int.TryParse(str, out num);//不管成功与否都会返回一个 bool 值。如果转换成功,会将值赋给变量 num。
     9     }
    10 }

    其他基本类型之间互相转换用 Convert。(使用 Convert 需要引用 using System 程序集)

     1 using UnityEngine;
     2 using System;
     3 
     4 public class Test
     5 {
     6     private void Start()
     7     {
     8         bool val = false;
     9         int num = Convert.ToInt32(val);
    10         int a = 0;
    11         bool v = Convert.ToBoolean(a);
    12     }
    13 }

    装箱:值类型转换成引用类型。

    拆箱:引用类型转换为值类型。

    注意:1、两种类型只有存在继承关系的时候,才可能出现装箱或者拆箱操作。

               2、装箱和拆箱的本质上是数据存储在栈空间与堆空间之间的变更,因此频繁的装箱或者拆箱会降低运行效率,所以代码中尽量少用装箱或者拆箱操作。

    常量:一个不能变化的量,常量一旦声明,就不可以再重新赋值。

    命名规则:常量名的命名一般全是大写,单词与单词之间用下划线分隔(例:SERVER_IP)。

    常量的声明:需要加上关键字 const ,且必须在声明时赋值。(例:const int SERVER_IP;)

  • 相关阅读:
    创建类以及引用一个类
    修改hosts文件
    微信第三方登录接口开发
    Android定位
    Leetcode 102. Binary Tree Level Order Traversal
    Leetcode 725. Split Linked List in Parts
    Leetcode 445. Add Two Numbers II
    Leetcode 328. Odd Even Linked List
    Leetcode 237. Delete Node in a Linked List
    Leetcode 234. Palindrome Linked List
  • 原文地址:https://www.cnblogs.com/xiaoyulong/p/7897077.html
Copyright © 2011-2022 走看看