一.标识符
注: C# 关键字 C#编译器预定义好的一些英文符号 具有特殊的作用
1.标识符必须以字母 下划线或@开头 后面可以跟一系列的之母,数字(0 - 9) ,下划线 ,@。
2.标识符中的第一个支付不能是数字。
3.标识符必须不包含任何嵌入的空格和括号 比如 ? - + # % - ^ & * ( ) [ ] { } . ; : " ' / \。
4.标识付不能是c# 关键字 除非他们有同一个@ 前缀 例如 @if 是有效的标识符 但if 不是因为if 是 关键字
5.标识必须区分大小写 大写字母和小写字母被认为是不同的之母。
6.不能与C#的类库名称相同
7.见名知意
二.数据类型
数据类型:值类型 和 引用类型
值类型: 整数类型 浮点数 布尔类型 单字符类型 struct(结构)enum(枚举)
引用类型 : 字符串类型 类类型 接口 数组 集合 委托
1.整数类型 : byte sbyte int uint long ulong short ushort
类型不一样 取值范围不一样 占用的内存不一样 还分为有符号和无符号整数
/*
浮点类型:单精度和双精度和decimal类型
类型不一样 取值范围不一样 小数点后精度不一样
//float:单精度浮点数,占4个字节
//double:双精度浮点数,占8个字节
//decimal:精确的十进制数值,占16个字节
*/
//默认要加D或者d 但是是非必须
double doubleNumber = 1.1d;
//默认要加f或者F 必须要加
float floatNumber = 1.1f;
//默认要加m或者M 必须要加
decimal decimalNumber = 1.1m;
//保留小数点后6位 四舍五入 //一般用于精度不高的数字
float floatNumber1 = 1.1234564890f;
Console.WriteLine(floatNumber1);
//一般用于精度较高的数字
double doubleNumber1 = 1.12345678901234567890;
Console.WriteLine(doubleNumber1);
//保留小鼠点后面数值 一般用于精度很高的数字
decimal decimalNumber1 = 1.123456789012345678901234m;
Console.WriteLine(decimalNumber1);
/*
布尔类型:true和false true对应的是1 false对应的是0
*/
/*
单字符类型:单个字母和单个符号 使用''表示 'a' 'b' '你' 每个字符对用不同unicode编码 编码的作用:区别不同语言
*/
char charNumber = 'A';
Console.WriteLine(charNumber);
char charNumber1 = 'B';
Console.WriteLine(charNumber1);
/*
字符串类型:多个单字符组成的类型 使用""和@""表示 "abc" @"abc"
*/
// "" 表示单行字符串 如果遇到\ 会报错 会默认吧\当成转义字符
// @""表示多行字符串 默认吧\当成普通字符
//
string stringNumber = "1";
string stringNumber1 = @"1";
string stringNumber2= "12345678abc";
string stringNumber3 = @"123456
78abc";
string stringNumber4 = "C:\\Users\\renre\\Desktop\\CSharp223";
string stringNumber5 = @"C:\Users\renre\Desktop\CSharp223";
//结构体 枚举 后续讲
//sizeof 作用 查看当前数据类型的占字节数
//int类型的占字节数
Console.WriteLine(sizeof(int));
//long类型的占字节数
Console.WriteLine(sizeof(long));
//float类型的占字节数
Console.WriteLine(sizeof(float));
//byte类型的占字节数
Console.WriteLine(sizeof(byte));
//double类型的占字节数
Console.WriteLine(sizeof(double));
//char类型的占字节数
Console.WriteLine(sizeof(char));
//bool类型的占字节数
Console.WriteLine(sizeof(bool));
//decimal类型的占字节数
Console.WriteLine(sizeof(decimal));
Console.ReadKey();
三.变量
1.含义:用来存储特定类型的数据格式,
2.存储变量的语法: 变量类型 变量名; 变量名=值;
声明并且给变量赋值的简写形式:变量类型 变量名 = 值;
3.变量的使用规则:要先声明再赋值再使用。
变量分为定义变量和使用变量
//定义变量格式:数据类型 变量的名字
//命名规则遵循标识符规则
//1.必须以“字母”或@符号或者_开头,不要以数字开头
// 2.变量名不要与C#关键字重复
// 3.小驼峰命名法
// 4.见名之意
// 5.变量的作用域内都不能在定义同名的变量
int intNumber;
float floatNumber;
string stringNumber;
byte byteNumber;
//使用变量
//赋值
intNumber = 10;
byteNumber = 254;
stringNumber = "hello";
floatNumber = 5.1f;
//取值
Console.WriteLine(intNumber);
Console.WriteLine(byteNumber);
Console.WriteLine(stringNumber);
Console.WriteLine(floatNumber);
//定义变量使用变量连写
double doubleNumber = 10.1d;
//定义相同类型的变量
bool boolNumber, boolNumber1,boolNumber2;
boolNumber = false;
boolNumber1 = false;
boolNumber2 = true;
//定义相同类型的变量且同时赋值
bool boolNumber3 = true, boolNumber4 = false, boolNumber5=true;
//局部变量 定义未赋值时 ,使用变量会报错
int intNumber1;
// Console.WriteLine(intNumber1);
//变量可以修改赋值内容 但是同时只能保存最新的赋值
boolNumber = true;
//赋值考虑定义的变量类型
// boolNumber = 10;
Console.WriteLine(boolNumber);
//常量
//1.含义:存储不变的数据 常量的名字要全部大写 使用关键字const定义常量
//2.作用:使用关键字const定义常量,并且在创建时必须设置它的初始值 且只能被赋值一次
//常量的定义: const 数据类型 常量的名字
const double PI = 3.1415926;
double R = 10.1;
double V = PI * R * R;
Console.WriteLine(V);
//值类型常量
int intNumber11 = 10; //十进制
int intNumber2 = 0X20; //十六进制
int intNumber3 = 012; //八进制
float floatNumber1 = 10.1f;
long longNumber1 = 100L;
uint uintNumber1 = 100u;
char charNumber11 = 'a';//英文
char charNumber21 = '中'; //中文
char charNumber31 = '\n'; //转义字符
char charNumber41 = '\u058F'; //Unicode编码
string stringNumber11 = "abc"; //字符串常量
//const 关键字 名字大写 声明常量和初始化常量要一起
//一旦设定了值 后续无法修改
// const decimal PI = 3.141592635m;
int intNumber33 = 10;
Console.WriteLine(intNumber33*PI);
// readOnly 字段常量 设置当前的字段为只读
readonly static int ReadOnlyInt =100;
readonly int ReadOnlyInt1;
//const 必须在声明时初始化 可以作为字段和局部常量
//readonly 可以在声明时初始化 也可在 构造函数中初始化
//只能作为字段 不能作为局部常量
Console.ReadKey();
四.接受用户的输出
//Console.WriteLine(); 输出任意类型内容,并换行
Console.WriteLine(1);
Console.WriteLine(true);
Console.WriteLine("abc");
Console.WriteLine('A');
Console.WriteLine(1.0f);
Console.WriteLine(1.111m);
int a = 10;
Console.WriteLine(a);
//Console.Write(); 输出任意类型内容,不换行
Console.Write('A');
Console.Write("abc");
Console.Write(1);
Console.Write(true);
//五.接受用户的输入
// Console.ReadLine();从屏幕读取一串字符,并返回该字符串
// 且具备暂停程序功能 等待用户输入 按下回车后继续执行程序
//从控制台读取123 然后在控制台中再输出123
//string readStr;
读取控制台内容
//readStr = Console.ReadLine();
//Console.WriteLine(readStr);
//从控制台读取123和456 然后在控制台中再输出123 +456
//Console.WriteLine("请输入内容1:");
//string readStr1 = Console.ReadLine();
//Console.WriteLine("请输入内容2:");
//string readStr2 = Console.ReadLine();
//Console.WriteLine(readStr1+readStr2);
// Console.Read(); 从屏幕读取一个字符,并返回该字符所对应的整型数字ASCII值
int aNumber;
Console.WriteLine("请输入字符A:");
aNumber = Console.Read();
Console.WriteLine(aNumber);
// 暂停当前程序,等待用户按下任意键继续执行程序
Console.ReadKey();
五.数据数据转换
//数据类型转换
//从区间(数字类型)方面进行数据类型转换
//分为隐式类型转换 和显式类型转换
//隐式类型转换 小区间到大区间
byte byteNumber = 10;
uint uintNumber = byteNumber;
Console.WriteLine(uintNumber);
//获得当前变量的类型
Console.WriteLine(uintNumber.GetType());
Console.ReadKey();
//显式类型转换 大区间转小区间 必须明确转换的类型(类型)
uint uintNumber1 = 254;
byte byteNumber1 = (byte)uintNumber1;
Console.WriteLine(byteNumber1);