C#学习笔记--变量类型的转换

变量类型的转化:

转换原则 同类型的大的可以装小的,小类型的装大的就需要强制转换。

隐式转换:

同种类型的转换:

C# 复制代码
 //有符号  long------>int------>short------>sbyte
long l = 1;
int i = 1;
short s = 1;
sbyte sb = 1;
//隐式转换 int隐式转换成了long
//可以用大范围 装小范围的 类型 (隐式转换)
l = i;
//不能够用小范围的类型去装在大范围的类型
//i = l;
l = i;
l = s;
l = sb;
i = s;
s = sb;

ulong ul = 1;
uint ui = 1;
ushort us = 1;
byte b = 1;

ul = ui;
ul = us;
ul = b;
ui = us;
ui = b;
us = b;

//浮点数  decimal    double------>float
decimal de = 1.1m;
double d = 1.1;
float f = 1.1f;
//decimal这个类型 没有办法用隐式转换的形式 去存储 double和float
//de = d;
//de = f;
//float 是可以隐式转换成 double
d = f;

//特殊类型  bool char string
// 他们之间 不存在隐式转换
bool bo = true;
char c = 'A';
string str = "123123";
//特殊类型  bool char string
// 他们之间 不存在隐式转换

不同类型的转换:

char类型可以隐式转换成数值型,根据对应的ASCII码来进行转换。

无符号的无法隐式存储有符号的,而有符号的可以存储无符号的。

显示转换

  1. 括号强转(注意精度问题 范围问题)

    C# 复制代码
    //有符号类型
    int i=1;
    short s=(short)i;
    //无符号类型
    byte b=1;
    uint ui=(uint)b;
    //浮点数
    float f=1.5f;
    double d=1.5;
    f=(float)d;
    //无符号和有符号
    //要保证正数 注意范围
    int ui2=1;
    int i2=1;
    ui2=(uint)i2;
    //浮点和整型
    i2=(int)1.25f;
    //char和数值类型
    i2='A';
    char c=(char)i2;
  2. Parse方法

    C# 复制代码
    //Parse转换
    int i4=int.Parse("123");
    float f4=float.Parse("12.3");
    //注意类型和范围!
  3. Convert法

    C# 复制代码
    int a=Convert.ToInt32("12");
    a=Convert.ToInt32("1.35f");//会四舍五入
    a=Convert.ToInt32(true);//转为1 false转为0

    注意:在Convert转换中变量以Int做标准,例如 INT16 为int,ToSingle为float

    ToDouble为double,ToBoolean为bool;

  4. 其它类型转换为string(调用ToString方式)

    string str=true.ToString();

    string str2=1.5f.ToString();