基本数据类型 和 引用数据类型
堆 (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 ();