类型转换:
1).隐式转换:我们不需要做什么,编译器自动识别;小范围的类型赋值到大范围类型的变量里面
int aa = 15;
double bb = aa;
Console.WriteLine(bb);
2).显示转换:(强制转换)需要指定转换的目标类型,大范围这种数据放到小范围类型数据变量里面,我们需要告诉编译器,转换的类型是什么
float b = 1.5f;
int a;
a = (int)b;
Console.WriteLine(a);//输出结果为1
显示转换的方法一:在转换值前面加(类型),但是这种转换可以能会造成数据丢失
显示转换的另一种方式:Convert类中的ToInt32(),ToDouble()……等方式,但这种方式面子上要过的去,例如 如果定义的字符串的值为:123.4,就只能转换成小数类型而不能是整数类型,否则系统会报错。
转String类型:任何类型的变量都可以.ToString();
int a2 = 15;
string b2 = a2 + ""; //这三种方式都可以转换成字符串类型的变量
//string b2 = Convert.ToString(a2);
//string b2 = a2.ToString();
Console.WriteLine(b2);
常量:const关键字修饰的变量,称为常量;
常量的特点:在声明的时候,赋值以后,不能二次赋值
语法:
const 类型 变量名 = 常量值;
const float Pl = 3.14f;
//PI = 3.1415926;//再次给常量赋值时报错:PI不存在
枚举类型:枚举类型需要自定义 可以规范程序的开发
枚举:确定数量,确定值的几个取值,例如:春夏秋冬 男女 周一周二周三周四周五周六周日等
语法:
enum 枚举名{
值1,
值2,
...
值n
}
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace
{
enum Gender //定义枚举类型Gender,里面有两个值:Male和Female
{
Male,
Female
}
enum QQState
{
Online=1,
Offline,
Hidden,
Leave,
Busy
}
赋值:枚举名 变量名=枚举名.值1 (枚举的命名一般是Passcal命名规则)
示例:
Gender gender=Gender.Male;
Console.WriteLine(gender);
判断QQ是否在线:0→在线 1→离线 2→隐身
普通方式: //可读性差,0,1,2没有具体含义
int state = 0;
if (state == 0)
{
Console.WriteLine("在线状态");
}
枚举类型方法:
QQState state = QQState.Online;
if (state == QQState.Online)
{
Console.WriteLine("在线状态");
}
枚举类型和int类型的相互转化:
枚举类型和int类型是相互兼容的,所以可以使用强制转换
int state1 = (int)QQState.Online;
Console.WriteLine(state1); //结果为:0
枚举类型里面的默认存储的是int类型的值,并且后面的值总是前面的值+1,默认从0开始。
修改枚举类型:在声明枚举名字后加:整数类型(short等),如改成其他类型则会报错
int state2 = (int)QQState.Online;
Console.WriteLine(state2); //输出:0
Console.WriteLine((int)QQState.Offline); //输出:1
Console.WriteLine((int)QQState.Hidden); //输出:2
Console.WriteLine((int)QQState.Lea