string myGoddess = "myGoddess";
char myWife = myGoddess;
//兄弟,编译器报错
类型转换
计算机里无论什么类型,最根本都是一些0和1组成的。变量的含义是通过翻译这些0和1来告诉你们。
- 隐式转换:
从类型A到类型B的转换交给编译器,即任何情况 - 显示转换:
从类型A到类型B需要代码处理,并不是任何情况下,需要编码人员自己决定
隐式转换
byte s = 10;
int i = s;
类型 | 可以安全的转换为 |
---|---|
byte | short,ushort,int,uint,long,ulong,float,double,decimal |
sbyte | short,int,long,float,double,decimal |
short | int,long,float,double,decimal |
ushort | int,uint,long,ulong,float,double,decimal |
int | long,float,double,decimal |
uint | long,ulong,float,double,decimal |
long | float,double,decimal |
ulong | float,double,decimal |
float | double |
char | ushort,int,uint,long,ulong,float,double,decimal |
不需要记这些,编译器会告诉你的
显示转换
string myGoddess = "myGoddess";
char[] myWife =new char[myGoddess.Length];
myWife = myGoddess.ToArray();
//总要求个婚吧!
要告诉编译器,数值从一种类型转到另一种数据类型时需要一些方法。
C#中常用的有Convert指令,以及利用好ToString和.Parse()这两个方法。
枚举
enum Brothel
{
XiaoHua=0,
XiaoLi,
XiaoMei
}
枚举容许定义一个类型,其取值范围是用户提供的值的有限集合
枚举的基本类型可以是byte、sbyte、short、ushort、int、uint、long、ulong。
默认情况下,每个值都会根据定义的顺序(从0开始),被自动赋予对应的基本类型值,还可以使用一个值作为另一个值的基础值,为多个枚举指定相同的值。
例
enum Brothel
{
XiaoHua=0,
XiaoLi=XiaoHua,
XiaoMei
}
注意:未赋值的任何值都会自动获得一个初始值,这里使用的值是从比上一个明确声明的值大1开始的序列
例如
enum Brothel
{
XiaoHua=0,
XiaoLi,
XiaoMao = XiaoHua,
XiaoMei
}
此时XiaoMei的值和XiaoLi的值是相等的
枚举也可以用运与类型转换
例
public enum Letter
{
a,
b,
c
}
static void Main(string[] args)
{
char a = char.Parse(Letter.a.ToString());
Console.WriteLine(a);
//此时会输出a
}