0 基础
C#语言的数据类型分为两种:
- 值类型
- 引用类型
值类型有
- 简单类型:整数(int)、浮点(float)、实数、字符型(char ' ' 注意是单引号)、布尔(bool)
- 复合类型:结构、枚举
引用类型:
- 类、接口、数组、委托
简单理解值类型就是说给你分配寄存器地址,让你在寄存器里存起来,调用的时候直接调用名称即可
引用类型,拿数组字符串来说,你调用变量名实际调用的是变量的首地址(C#还没学会,C也快忘光了)
一、整数类型
1.1 int类型的注意事项
int类型的默认值为0
在int类型中,数据初始化时,与数据库打交道,有时我们会把int型数据赋值为 null,但是如果直接赋值,肯定会报错,可以在int后边加上 一个问号:
(此问号是为数据库设计的)
int? number = null;
1.2 long类型为什么要加L
- 使用L后置字符时,系统会根据整数值的大小,判断它是long还是ulong,在小于ulong的范围则将其视为long类型
- 如果仅仅是声明 long number = 5300100500,超过uint的范围,则编译器会参照int,uint,long,ulong的适用范围来找,会降低程序的效率。
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using static System.Console;
namespace Lesson03
{
class Program
{
static void Main(string[] args)
{
int num1 = 123456;
long num2 = 456_789_123L;
float num22 = 456.789123f;
long max = Int64.MaxValue;
long min = Int64.MinValue;
int num3 = 0b1011_110;//千位分隔符,C#7.0开始支持
//int num4 = 0b_1111_110;//C#7.2开始支持使用下划线作为二进制或者十六进制的前导符
int num5 = 0xFB12;//
//int num5 = 0x_FB12;
WriteLine($"Number :\n {num1:N0},\n {num2:n0},\n {num22:n0}");//
WriteLine($"二进制转换为十进制 : {num3:D5},{num5:D5}");
WriteLine($".NET Framework类型 : {num1.GetType()}");
ReadKey();
}
}
}
1.3 short 注意事项
编译器默认整数为 int 型,当short类型的数据相加就会报错
short num1 = 50;
short num2 = 78;
//short num3 = (num1 + num2);
short num3 = (short)(num1 + num2);
二、浮点型
如果一个小数后边没有加 f 或者 d,默认是double类型
如果希望一个小数被当做成decimal类型使用,必须要使用后缀m或M
三、布尔类型
布尔类型主要用来表示true、false值,C#中定义布尔类型时,需要使用bool关键字。
bool类型的默认值是false ( bool赋值时只能赋值true或false ),C#中布尔的值无法像C++中那样以数值进行转化
bool bu1 = true;
//bool bu2 = 1; // C#中布尔的值无法像C++中那样以数值进行转化
四、字符类型
(c#语言中,使用char/Char类定义字符,并且字符只能用单引号 - 注意书写的时候 是单引号)
只能定义单个字符,不能写多个字符 !!!!
char类型实际上存储的是数字,所以把两个char变量加载一起也会得到有个数字(其类型为int),原因是隐式类型转换。。。
Char chM = 'M';
int num1 = (int)chM;
int num2 = 78;
WriteLine($"{num1:D5}");
ReadKey();
五、字符串
(1)转义字符 \ ,在c#中如果想输出 \ 需要 \\ 再加一个反斜线
(2)转义字符小技巧:
@在字符串类型中如果想输出多个\ ,在字符串前边添加@符号即可,就不需要添加\\ 两个反斜线转义后边的反斜杠了: