数据类型 区别和转换

基本数据类型 和 引用数据类型

堆 (heap1):在其他语言叫堆,在C#里面叫做“托管堆”。

栈 (stacck) : 叫做堆栈,简称栈。

int num = 100 ; //基本数据类型

double num2 = 25.3 ; //基本数据类型

string str = "hello , world!" ; //引用数据类型

int [ ] arr = {100 ,50 ,6 } ; //引用数据类型

string str2 = str ; //声明了一个引用数据类型 , 赋值已存在的变量值。

数据类型的转换: “两个不同的数据类型转换为同类型数据”。

隐式转换: 自动转换,这里将char类型数据转换为int使用。

int num3 = 'a' ;

Console . WriteLine( num3 ) ; //97

// 从小范围到大范围也属于隐式转换。

num3 = 100 ;

long num4 = num3 ;

// 显示转换 (强制转换 )

char str2 = (char)97 ;

Console . WriteLine( str2 ) ; // a

//byte : 整数数值型,无符号的 ,取值范围 0-255.

byte n1 = 255 ; //取值范围 0-255

Console . WriteLine( n1 ) ; // 255

//sbyte 整数数值型,有符号的 ,取值范围 -128 ~ 127.

sbyte n2 = -128 ; //取值范围 -128~127

Console . WriteLine( n2 ) ; // -128

sbyte n3 = (sbyte)n1;

//给sbyte赋值为255,超出了sbyte的取值范围,使用(sbyte)强塞给变量。

Console . WriteLine( n3 ); // -1

// 把一个大的数据强塞给小的容器,返回其数值的最小值,“255的最小值是-1”,sbyte是可以体现负数的。

num4 = 10000000000000 ; //long类型数据

num3 = (int )num4 ; //num3 是 int类型数据

Console . WriteLine( num3 ); // 276447232


int num = 100;

//char 字符类型,归类于数值型。char 类型数据和其他数值型进行计算或应用的时候,

//char类型数据将会根据自身字符根据ASCII码表隐式转换为十进制数在计算

char str = 'a';

Console.WriteLine(str); //'a'

string str1 = "hello";

Console.WriteLine(str1 + str); //"helloa"

Console.WriteLine(str1 + num); //"hello100"

Console.WriteLine(str + num); //"97+100 197"

//注意:如果char类型数据是中文字符,也可以把中文转换为十进制数后再计算“可以

// 通过转换工具查看字符对应的十进制数值”

Console.WriteLine("你" + num); //"20320+100 20420"

//可以给int 类型的数据赋值为char类型“char会先将自身转换为整数值”

int num2 = 'a';

Console.WriteLine(num2); // 97

num2 = '你';

Console.WriteLine(num2); //20320

//char str2 = 97; //报错,类型不同。

//(char)强塞 ,强制转换,将其他数据类型转换为char类型数据

char str2 = (char)97;

Console.WriteLine(str2); // a

str2 = (char)20320;

Console.WriteLine(str2); // 你

//注意:如果我们的数字无法根据ASCII码值转换为对应字符,都会返回一个 ? 字符

str2 = (char)1280;

Console.WriteLine(str2); // ?

int a = 30, b = 50;

Console.WriteLine(a + "+" + b + "=" + (a + b));

Console .WriteLine("{0}+{1}={2}",a,b,a+b,"111",100);

//显示转换 convert对象,专门进行数据类型的转换对象,打点调用其方法“转换某一类型”

Console.WriteLine(Convert.ToInt32("123"));

// Console.WriteLine(Convert.ToInt32("hello")); //报错

Console.WriteLine(Convert.ToInt32('a'));

Console.WriteLine(Convert.ToInt32(true));

Console.WriteLine(Convert.ToString (123) + 456);

Console.WriteLine(Convert.ToChar("你"));

// Console.WriteLine(Convert.ToChar("你好")); //报错

Console.WriteLine(Convert.ToChar(99));

// Console.WriteLine(Convert.ToBoolean("1")); //报错

Console.WriteLine(Convert.ToBoolean( 1 ));

Console.WriteLine(Convert.ToBoolean(1.5));

Console.WriteLine(Convert.ToBoolean(1000));

// Console.WriteLine(Convert.ToBoolean("a")); //报错

//Console.WriteLine("12" * 2);

Console.WriteLine(Convert .ToInt32 ("12") * 2);

int newNum = Convert .ToInt32(Console .ReadLine());

Console .WriteLine(newNum * 2);

//变量打点,能够调用ToString()方法“将变量的类型转换成字符串”

int newNum1 = 10;

string newStr1 = Convert .ToString (newNum1);

newStr1 = newNum1 . ToString ();

Console .WriteLine(newStr1 + 10);

int newNum2 = 10;

Console .WriteLine ( newNum2.ToString () ); //"10"

//Console .WriteLine (newNum2.ToString ("11") ); //"11"

//注意:ToString()带参数会修改变量的值,值带小数点会将小数点转为10字符串

Console .WriteLine (newNum2 .ToString ("11.56")); //"111056"

Console.WriteLine(newNum2.ToString("25.23")); //"251023"

Console.WriteLine(newNum2.ToString("25.00")); //"2510.00"

//int 关键字打点调用Parse(参数),将参数“参数必须是字符串类型且内容和类型相似”转换int型。

Console.WriteLine(int.Parse("123") + 10); //123

Console.WriteLine(bool.Parse("true")); //true

Console.WriteLine(double.Parse("10.5") + 10); //10.5

//获取用户键盘输入

Console.WriteLine(Console.ReadKey()); // 输出结果: kSystem.ConsoleKeyInfo

ConsoleKeyInfo key = Console.ReadKey();

Console.WriteLine(key.KeyChar); //键盘按下的字符

//阻塞,防止控制台闪退 (在使用控制台应用.net,farmwork时使用)

Console.ReadKey ();

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值