1.数据类型
一字节=8bit,最高位为符号位(1代表负数,0代表正数)
数据类型 | 描述 |
---|---|
byte | 8bit (0~255) |
sbyte | 8bit(有符号)(-128~127) |
short | 16bit |
ushort | (无符号)16bit |
int | 32bit |
uint | (无符号)32bit |
long | 64bit |
ulong | (无符号)64bit |
float | (单精度)32bit–数据后加f |
double | (双精度)64bit |
decimal | (专用于货币数值类型)16字节–数据后加M |
string | 字符串(用双引号赋值) |
char | 字符(用单引号赋值) |
var | 弱类型 |
变量是数据类型的载体,c#默认带小数点的数据为double。所以在给float变量赋值时数据后面加f;
2.数据类型转化
数值类型
1.自动转化:大变量=小数值;
2.强制转化:小变量=(小类型)大数值;
数值与字符串转换
- 字符串=>数值(int)
string s=“20”;
int age=Convert.ToInt32(s);
或
int age=int.Parse(s); - 字符串=>数值(float)
string s=“20”;
float age=Convert.ToDouble(s); - 字符串=>数值(float)
string s=“20”;
float age=Convert.ToSingle(s); - 数值=>字符串
int a=140;
string b=a.Tostring();
数值与 Bool转换
Random random = new Random();
int female= random.Next(2);
//C#里面所有非零数转换为true
bool result = Convert.ToBoolean(female);
if (result)
{
Console.WriteLine("我是男生");
}
else
{
Console.WriteLine("我是女生");
}
丢弃
var datas = (1,8,9,7,9,0);
(int x, int y, int z, _, _, _) = datas;
Range函数
范围内连续数字
foreach (var item in Enumerable.Range(1,10))
{
Console.WriteLine(item);
}
常量、常数
const +数据类型+常量名称(所有字母大写)
#region 整个应用程序定义常量
//const定义常量赋值后的常量不能再赋值
//const定义常量能够再静态方法中使用
const int HEIHT = 180;
//readonly定义常量只能在非静态方法中使用,除非定义过程使用static关键字
static readonly string NAME = "gserg";
#endregion
//方法中常量只能用const定义常量
const string GENDER = "female";
字符串格式化
string name = "xu";
int age = 28;
double weight = 60;
Console.WriteLine("姓名:{0},年龄:{1},体重:{2}公斤",name,age,weight);
//字符串格式化
string msg = string.Format("姓名:{0},年龄:{1},体重:{2}公斤", name, age, weight);
Console.WriteLine(msg);
//c#8
string msg0 = $"姓名:{name},年龄:{age},体重:{weight}公斤";
Console.WriteLine(msg0);
使用下划线表达数据
//提高数据可读性
var number = 102_894_215;
Console.WriteLine(number);
数据类型范围溢出
//数据类型范围溢出,加checked关键字
checked
{
byte a = 254;
Console.WriteLine(a);
a++;
Console.WriteLine(a);
a++;
Console.WriteLine(a);
a++;
Console.WriteLine(a);
}