using System;namespace ConversionExample
{classProgram{staticvoidMain(string[] args){int x =int.MaxValue;long y = x;//隐式类型转换(不丢失精度的前提下)
Console.WriteLine(y);}}}
子类向父类的转换
using System;namespace ConversionExample
{classProgram{staticvoidMain(string[] args){Teacher t =newTeacher();Human h = t;//此处包含了子类向父类的隐式类型转换Animal a = h;
a.Eat();//只能访问Eat方法}}classAnimal{publicvoidEat(){
Console.WriteLine("Eating...");}}classHuman:Animal//继承{publicvoidThink(){
Console.WriteLine("Who I am?");}}classTeacher:Human//继承{publicvoidTeach(){
Console.WriteLine("I teach programing.");}}}
using System;namespace ConversionExample
{classProgram{staticvoidMain(string[] args){
Console.WriteLine(ushort.MaxValue);uint x =65536;ushort y =(ushort)x;//将32位的数据强行塞进16位的空间
Console.WriteLine(y);//输出为0}}}
Convert类 相当于一个类型转换的枢纽,几乎可以把任何一个数据类型转化为我们想要的数据类型。
using System;namespace ConversionExample
{classProgram{staticvoidMain(string[] args){string x ="100";//int i = (int)x; //无法编译string y ="200";int i = Convert.ToInt32(y);//字符串转化为整数
Console.WriteLine(i.GetType().Name);//输出为Int32}}}
using System;namespace ConversionExample
{classProgram{staticvoidMain(string[] args){int x =7;int y = x <<1;//向左平移一位string strX = Convert.ToString(x,2).PadLeft(32,'0');string strY = Convert.ToString(y,2).PadLeft(32,'0');
Console.WriteLine(strX);
Console.WriteLine(strY);}}}
按位求与 &
using System;namespace ConversionExample
{classProgram{staticvoidMain(string[] args){int x =7;int y =21;int z = x & y;string strX = Convert.ToString(x,2).PadLeft(32,'0');string strY = Convert.ToString(y,2).PadLeft(32,'0');string strZ = Convert.ToString(z,2).PadLeft(32,'0');
Console.WriteLine(strX);
Console.WriteLine(strY);
Console.WriteLine(strZ);}}}
按位求或 |
using System;namespace ConversionExample
{classProgram{staticvoidMain(string[] args){int x =7;int y =21;int z = x | y;string strX = Convert.ToString(x,2).PadLeft(32,'0');string strY = Convert.ToString(y,2).PadLeft(32,'0');string strZ = Convert.ToString(z,2).PadLeft(32,'0');
Console.WriteLine(strX);
Console.WriteLine(strY);
Console.WriteLine(strZ);}}}
按位异或 ^
using System;namespace ConversionExample
{classProgram{staticvoidMain(string[] args){int x =7;int y =21;int z = x ^ y;string strX = Convert.ToString(x,2).PadLeft(32,'0');string strY = Convert.ToString(y,2).PadLeft(32,'0');string strZ = Convert.ToString(z,2).PadLeft(32,'0');
Console.WriteLine(strX);
Console.WriteLine(strY);
Console.WriteLine(strZ);}}}
条件与 AND &&
using System;namespace ConversionExample
{classProgram{staticvoidMain(string[] args){int x =5;int y =4;int a =100;int b =200;if(x>y && a < b)//a并且b,两边同时满足为True{
Console.WriteLine("Hello");}}}}
条件或 OR ||
using System;namespace ConversionExample
{classProgram{staticvoidMain(string[] args){int x =3;int y =4;int a =100;int b =200;if(x>y || a < b)//a或b,任意一边满足为True{
Console.WriteLine("Hello");}}}}
null合并
using System;namespace ConversionExample
{classProgram{staticvoidMain(string[] args){//Nullable<int> x = null; //可空类型int? x =null;int y = x ??1;//如果x为null,则把1赋值给x
Console.WriteLine(y);//输出为1}}}
条件 ?: 本质上是if else分支的简写
using System;namespace ConversionExample
{classProgram{staticvoidMain(string[] args){int x =80;string str =(x >=60)?"Pass":"Failed";//如果为真,返回:左边的值;为假,则返回:右边的值/*string str = string.Empty;
if (x>=60)
{
str = "Pass";
}
else
{
str = "Failed";
}*/
Console.WriteLine(str);}}}
赋值操作符
using System;namespace ConversionExample
{classProgram{staticvoidMain(string[] args){int x =5;int y =6;int z =7;int a = x += y *= z;//从右向左运算
Console.WriteLine(y);
Console.WriteLine(x);
Console.WriteLine(a);//输出47}}}