温馨提示:左侧可以打开菜单快速跳转哦~
数据类型
string 可以嵌入转义符,@忽略转义符,如路径\\改为\
int 32bit 取值范围:-2147483648~2147483647
long 64bit 取值范围:-9223372036854775808~9223372036854775807
double 64bit 有效数字:15~16
decimal 128bit 作用:金融计算等大型数据 有效数字:28~29
bool:true or false
char:单个字符 符号格式为'',可调用ASCII编码
StringBuilder 大量字符串修改操作首选
const 锁定常量,不允许发生值变化
值类型:所有的都是值类型
引用类型:string,stringbuilder
null=不存在(没有引用任何有效对象)
empty=空值
?:值类型中调用可空类型 如int? str = null;
var:自动判断字面值并使用(隐式类型)
转义符
\n:换行符 \t:对齐 \\:输出原本内容 \':输出单引号 \a:提示音
类型转换
显示,从高向低
a = (int)b;
long赋值给int严谨起见最好进行一次类型转换然后赋值
隐式,从低向高
a = b;
int赋值给long不需要进行转换,long取值范围比int大
checked:检查值溢出
checked
{
}
专门转换函数
parse():解析字符串,字符串转为指定类型
tryparse():同样是parse的操作,但是返回的参数为true或者是false,即为成功与否
ToString():类型转为字符串
运算符
一次运算符:+,-
二次运算符:*,/,=,%,++,--,+=,-=,%=,/=
console颜色操作
设置之后输出语句为红色
Console.ForegroundColor = ConsoleColor.Red;
重置恢复颜色
Console.ResetColor();
结构
顺序结构,分支结构,循环结构
约定写法
双词组成中小写在前大写在后
如:isCool
注意运算符的优先级
遵循从右至左运算
字符串相加合并输出
随机取值
int 变量 = new Random().Next(随机数大小)+额外数值;
int a = new Randon().Next(3)+1;
Random:随机
Next 下一个
toString转换类型
((转换类型)变量1 / 变量2).ToString("数值类型");
((double)a / b).ToString("F2");
货币:C 2.5 = ¥2.50 C2:保留两位小数
十进制数:D 2.5 = 00025 D5:输出五位数值,不足五位就在前面填充0
固定点:F 2.5 = 25.00 F2:保留两位小数
常规:G 2.5 = 2.5 G:常规。转换为字符串
数字:N 2.5 = 2,500,000.00 N:每三位数加一个逗号分开,并保留两位小数
百分比:P 0.126 = 12.6% P:小数点后移两位
访问修饰符
public 公开
protecte 受保护
default 默认
private 私有
void 无返回值
方法
public static (void/定义类型)(无返回/返回) 方法名称 () {}
void(无返回参数)
public static void a () {} public static int||double... a () {}
主函数外面,命名空间内的枚举定义
public enum 枚举名称 {}
主函数内写入类型
枚举名称 变量名称 = 枚举名.枚举内容
enum:枚举定义
1+2+3+4+...+n
b+=a+=i;
定义方法
新建类项目 - 定义public引用参数
实例化对象
类名 变量名 = new 类名();
new:开辟内存
对象的类可以直接调用或修改
对象.类名
using:导入命名空间
如果空间名的类名冲突,则使用完全限定名调用定义
结束程序 [ɪnˈvaɪrənmənt]
environment.exit(0);
大写转小写
调用ANSI编码的实现方法
Console.Write("请输入一个大写字母:"); char a = char.Parse(Console.ReadLine()); Console.WriteLine((char)(a + 31));
调用系统库的实现方法
a = a.ToLower(); a = a.ToUpper();
使用系统库实现的前提是,目标必须为字符串类型
ToLower是转小写,ToUpper是转大写
代码异常处理
对于可能异常的代码,可以用try与catch去更好的执行
try { //有可能出现错误的代码 } catch (Exception) { //如果try中代码出现异常,则执行catch throw; //显示报错信息 } finally { //无论是否异常最后执行的代码 }
try里面写入可能会出现异常的代码,当代码发生异常,则直接执行catch里面的代码,而无论是否异常,只要有finally就会最后执行它
try { int a = int.Parse(Console.ReadLine()); } catch (Exception) { Console.WriteLine("代码出现异常!"); throw; } finally { Console.WriteLine("程序结束"); }
当a里面用户输入的不是int值,此时就会发生异常,如果没有try程序就进入了卡死状态直至结束,但是在这里出现了异常就会跳转到catch中执行“代码出现异常!”的提示,并用throw来抛出异常信息,最后执行finally告诉用户程序结束。
throw:扔,扔出自己的异常
catch:抓:抓取异常信息
判断是否为英文,数字或空格
//定义存储变量 int num = 0, en = 0, space = 0, qiTa = 0; //录入数值到字符串 Console.Write("请输入一段话:"); string textt = Console.ReadLine(); //循环字符串的长度 for (int i = 0; i < textt.Length; i++) { //拆分字符串判断 char text = textt[i]; if (char.IsLetter(text)) { en++; } else if (char.IsWhiteSpace(text)) { space++; } else if (char.IsNumber(text)) { num++; } else { qiTa++; } } //输出结果 Console.WriteLine("数字有:{0}个;字母有{1}个;空格有{2}个;其他字符有{3}个", num, en, space, qiTa);
IsLetter(text):是否为英文
IsWhiteSpace(text):是否为空格
IsNumber(text):是否为数字
返回参数为ture || false
enum枚举
枚举类型在定义时使用 enum 关键字表示,枚举类型的定义与类成员的定义是一样的,或者直接定义在命名空间中
枚举定义不能定义在方法中
访问修饰符 enum 变量名 : 数据类型 { 值l, 值2, }
- 访问修饰符我们现在都用public
- 变量名为自己自定义,命名方法与定义变量是一样的
- 数据类型可以指定成员的数据类型
- 如果没有给成员赋值,他们默认类型为int,并且会自动赋值,第一个为0依次向后赋值
public enum Where { one, two, three, four, five, six, seven } class Program { static void Main(string[] args) { Console.Write("请输入今天星期几?(1-7):"); int user = int.Parse(Console.ReadLine()); if (user == (int)Where.six + 1 || user == (int)Where.seven + 1) { Console.WriteLine("星期{0}是周末" , user); } else { Console.WriteLine("星期{0}是工作日", user); } } }
struct结构体
结构体可以让单一的变量还能存储更多的数据类型的相关数据
就好比一辆车,它的架构都是一样的,仅仅只是颜色不同或者内饰不同就是两辆车的大概意思
public struct test { public string name; public int age; } class Program { static void Main(string[] args) { //声明结构体并赋初值 test a; a.name = "小明"; a.age = 18; //结构体可以直接进行运算 a.age += 1; test b; b.name = "小红"; b.age = 17; b.age += 2; } }
本文地址: C#学习笔记