总目录
C# 语法总目录
参考链接:
C#语法系列:C# 语言类型(一)—预定义类型值之数值类型
C#语法系列:C# 语言类型(二)—预定义类型之字符串及字符类型简述
C#语法系列:C# 语言类型(三)—数组/枚举类型/结构体
C#语法系列:C# 语言类型(四)—传递参数及其修饰符
C#语法系列:C# 语言类型(五)—其他
C# 语言类型一 —预定义类型:数值类型
- C# 语言类型一
- 预定义类型
- 1. 数值类型
- 1.1数值类型字面量表示
- 1.2 获取某个值的类型
- 1.3 float 和 double 类型的特殊值
- 2. 算术运算
- checked 和 unchecked 运算符
- 3. 位运算符
- 4. 比较运算和条件运算
C# 语言类型一
注释
//单行注释/// <summary>
/// 方法注释
/// </summary>
/// <param name="args">方法参数</param>/*
多行注释
*/
预定义类型
预定义类型又称框架类型,它们都在 System 命名空间下。
预定义类型又可以细分为 值类型 ,和 引用类型
(1) 值类型
值类型包含 所有的数值类型、char类型、bool类型、自定义的 struct 类型 和 enum 类型。
(2) 引用类型
引用类型包含 所有的类、数组、委托 和 接口类型 以及 预定义类型中的 string类型。
值类型:
- 数值
- 有符号整数(sbyte,short,int,long)
- 无符号整数(byte,ushort,uint,ulong)
- 实数(float,double,decimal)
- 逻辑值(bool)
- 字符(char)
引用类型:
- 字符串(string)
- 对象(object)
值类型大小
namespace TopSet06
{internal class Program{static void Main(string[] args){Console.WriteLine("-------字节型-------");Console.WriteLine("有符号 sbyte is: "+ sizeof(sbyte));Console.WriteLine("无符号 byte is: " + sizeof(byte));Console.WriteLine("-------短整型-------");Console.WriteLine("有符号 short is: " + sizeof(short));Console.WriteLine("无符号 ushort is: " + sizeof(ushort));Console.WriteLine("-------整型-------");Console.WriteLine("有符号int is: " + sizeof(int));Console.WriteLine("无符号uint is: " + sizeof(uint));Console.WriteLine("-------长整型-------");Console.WriteLine("long is: " + sizeof(long));Console.WriteLine("ulong is: " + sizeof(ulong));Console.WriteLine("-------浮点型-------");Console.WriteLine("float is: " + sizeof(float));Console.WriteLine("double is: " + sizeof(double));Console.WriteLine("-------十进制小数-------");Console.WriteLine("decimal is: " + sizeof(decimal));Console.WriteLine("-------布尔型-------");Console.WriteLine("bool is: " + sizeof(bool));Console.WriteLine("-------字符型-------");Console.WriteLine("char is: " + sizeof(char));Console.ReadLine();}}
}
--输出
-------字节型-------
有符号 sbyte is: 1
无符号 byte is: 1
-------短整型-------
有符号 short is: 2
无符号 ushort is: 2
-------整型-------
有符号int is: 4
无符号uint is: 4
-------长整型-------
long is: 8
ulong is: 8
-------浮点型-------
float is: 4
double is: 8
-------十进制小数-------
decimal is: 16
-------布尔型-------
bool is: 1
-------字符型-------
char is: 2
1. 数值类型
1.1数值类型字面量表示
数值类型字面量有一些表示特性,简化程序员工作
namespace TopSet07
{internal class Program{static void Main(string[] args){int a = 0x560;//需要C#7.0以上int b = 0b00101010;//需要C#7.0以上,并且vs版本需要2022 17.9以上int c = 1_000_000_1_20;double d = 1e10;double D = 1E10;double e = 1.5;//float 类型需要添加末尾的f 或 F 大小写都行float f = 1.5f;//float 类型需要添加末尾的m 或 M 大小写都行decimal g = 3.1415m;Console.WriteLine(a);Console.WriteLine(b);Console.WriteLine(c);Console.WriteLine(d);Console.WriteLine(D);Console.WriteLine(e);Console.WriteLine(f);Console.WriteLine(g);Console.ReadLine();}}
}--输出
1376
42
1000000120
10000000000
10000000000
1.5
1.5
3.1415
1.2 获取某个值的类型
namespace TopSet08
{internal class Program{static void Main(string[] args){Console.WriteLine(10.0.GetType());int a = 12;Console.WriteLine(a.GetType());Console.ReadLine();}}
}
--输出
System.Double
System.Int32
1.3 float 和 double 类型的特殊值
Console.WriteLine("------float------");
Console.WriteLine(float.PositiveInfinity);
Console.WriteLine(float.NegativeInfinity);
Console.WriteLine(float.Epsilon);
Console.WriteLine(float.MaxValue);
Console.WriteLine(float.MinValue);
Console.WriteLine(float.NaN);
Console.WriteLine("------double------");
Console.WriteLine(double.PositiveInfinity);
Console.WriteLine(double.NegativeInfinity);
Console.WriteLine(double.Epsilon);
Console.WriteLine(double.MaxValue);
Console.WriteLine(double.MinValue);
Console.WriteLine(double.NaN);
//NaN不等于任何数,包括NaN
//要判断是不是NaN ,只能用方法 IsNaN 来判断
Console.WriteLine("------IsNaN------");
Console.WriteLine(float.NaN == double.NaN); //false
Console.WriteLine(float.IsNaN(float.NaN)); //trueConsole.ReadLine();
--输出
------float------
∞
-∞
1E-45
3.4028235E+38
-3.4028235E+38
NaN
------double------
∞
-∞
5E-324
1.7976931348623157E+308
-1.7976931348623157E+308
NaN
------IsNaN------
False
True
2. 算术运算
加减乘除取余
自加自减,案例略。
checked 和 unchecked 运算符
checked
checked 运算符可以检查算术是否溢出,在checked中溢出会报错。
浮点类型的无法使用该检查,因为浮点溢出会变为无穷值。
int a = 1_000_000;
int c = checked(a * a);
--输出报错
Unhandled exception. System.OverflowException: Arithmetic operation resulted in an overflow.at
unchecked
不管里面是否溢出都不管,溢出了也不报错
int a = 1_000_000;
int b = unchecked( a*a);
Console.WriteLine(b);
--输出
-727379968
3. 位运算符
左移<< , 右移 >> , 异或 ^ , 按位或 | , 按位与 & , 按位取反 ~
4. 比较运算和条件运算
比较运算:>= , <= ,== , != , > , <
条件运算: ||,&& , w? a:b
总目录
C# 语法总目录
参考链接:
C#语法系列:C# 语言类型(一)—预定义类型值之数值类型
C#语法系列:C# 语言类型(二)—预定义类型之字符串及字符类型简述
C#语法系列:C# 语言类型(三)—数组/枚举类型/结构体
C#语法系列:C# 语言类型(四)—传递参数及其修饰符
C#语法系列:C# 语言类型(五)—其他