• 一、C#入门


    点击访问 C# 官方文档

    1、注释

    • 单行注释://xxx
    • 多行注释:/*xxx*/
    • 特定注释:///

    2、折叠代码

    • 由 #region 和 #endregion 配对出现;使长篇代码更清晰
    • 是编辑器提供给我们的 预处理命令,只在编辑时有用(说白了就是给程序员看的)
    #region 折叠区域名字
    // 这里是为了处理一个事务的一大堆逻辑的代码
    #endregion
    
    • 1
    • 2
    • 3

    3、C# 的类型系统

    4、常量 const

    • 必须初始化
    • 不能被修改
    const int xxx = 0;
    
    • 1

    5、转义字符 \

    • 在字符串中呈现特殊字符,例如双引号
    string str = "abc\"def"; // abc"def
    
    • 1
    • 取消转移符号 @
    string str = @"abc\tdef"; // abc\tdef
    
    • 1

    6、类型转换

    6.1、隐式类型转换(自动)

    低精度可自动转高精度

    以下三类也可交叉转换,前提必须是小类型可自动转大类型,大类型范围必须完全包含小类型范围

    • 有符号:sbyte >>> short >>> int >>> long
    • 无符号:byte >>> ushort >>> uint >>> ulong
    • 浮点型:float >>> double ××× decimal
      • decimal比较特殊,它不能被float和double隐式转换,但可隐式存储整型

    特殊类型单独拎出来说明如下:

    • bool ××× 不能隐式转也不能隐式被转
    • char 只能将其对应的ASCII码隐式转换为整型(其实就是int),然后int又隐式转换成其他可转换的类型
    • string ××× 不能隐式转也不能隐式被转

    6.2、显式类型转换(手动)

    6.2.1、括号强转

    • 高精度强制转换为低精度
      • 不支持:bool 和 string
      • 问题:精度丢失和数据溢出
    int i = 1;
    byte bt = (byte)i;
    
    • 1
    • 2

    6.2.2、Parse 专门针对字符串

    • 把字符串强制转换成其他类型
      • 必须符合要转换成的类型的格式和范围否则编译报错,
    // 正常转
    string strnum = "18";
    int num01 = int.Parse(strnum);
    float f = float.Parse(strnum);
    bool bo = bool.Parse(strnum);
    
    // 直接报错栗子
    // int num = int.Parse("123.45");
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8

    6.2.3、Convert

    • 更准确的将 各个类型之间进行相互转换
      • Convert.ToXxx(参数)
      • 填写的变量或常量必须正确(字符串和parse一样的规则)否则编译报错
      • 转数字比第一种括号强转人性化一点,精度丢失时会四舍五入
    // 正常转
    int num = Convert.ToInt32(4.5); // 5
    int numTrue = Convert.ToInt32(true); // 1
    int numFalse = Convert.ToInt32(false); // 0
    float flo = Convert.ToSingle("123.456789"); // 123.4568
    
    // 直接报错栗子
    // int num = Convert.ToInt32("123.45");
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8

    6.2.4、其他类型转string

    • .toString()
    • +:字符串拼接
    int num = 18;
    string str0 = num.ToString();
    string str1 = num + "";
    
    • 1
    • 2
    • 3

    7、异常捕获

    try {
        // 可能抛出异常的代码
    } catch (Exception e) { // 不关心到底是什么引起的异常时,捕获信息(Exception e)可省略
        // 异常处理
    } finally {
        // 必执行的代码
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7

    8、运算符

    8.1、算数运算符

    • 赋值符号: =
    • 算数运算符(优先级:*/% >>> ±)
      • 加:+
      • 减:-
      • 乘:*
      • 除以: /
      • 取余:%
    • 复合运算符:+=、-=、*=、/=
    • 自增减
      • ++
        • num = i++;num是i
        • num = ++i:num是i+1

      • 同++

    8.2、字符串拼接

    • +
    string str = "abc-" + 1 + 2; // "abc-12"
    str += 2 + 3 + "-xx"; // "abc-125-xx"
    string s2 = true + "-a"; // "True-a"
    
    • 1
    • 2
    • 3
    • string.Format("待拼接内容", ..."内容段")
    string name = "小白";
    int age = 18;
    string hobby = "吃饭睡觉打代码";
    Console.WriteLine(string.Format("我是{0},今年{1}岁,爱好:{2}", name, age, hobby));
    // 我是小白,今年18岁,爱好:吃饭睡觉打代码
    
    • 1
    • 2
    • 3
    • 4
    • 5

    8.3、条件运算符

    • 大于:>
    • 小于:<
    • 等于:==
    • 不等:!=
    • 大于等于:>=
    • 小于等于:<=

    8.4、逻辑运算符(优先级:! >>> &&||)

    • 逻辑与:&&
    • 逻辑或:||
    • 逻辑非:!

    8.5、位运算符

    • 位与:&
      • 有0则0
      • 栗子:1&5 = 1
    • 位或:|
      • 有1则1
      • 栗子:1&5 = 5
    • 异或:^
      • 相同为0,不同为1
      • 小公式:m = m ^ n ^ n
      • 栗子:1^5 = 4
    • 位取反:~
      • 对位运算,1变0,0变1
      • 栗子:~5 = -6(负数转二进制需要取反+1)
    • 左移:<<
      • 相当于往右补位(用0补位)
      • 左移几位就×2的几次幂
      • 栗子:1<<5 = 32
    • 右移:>>
      • 相当于往往左补位(用最高位数字补位)
      • 右移几位就÷2的几次幂
      • 栗子:32>>5 = 1

    8.6、三目运算符

    bool : true ?false

    8.7、其他运算符

    • sizeof(int):查看占用内存大小
      • console:4
    • typeof(int):查看类型
      • console:System.Int64
    • is:判断对象是否属于一个类型
      • 13 is int:true
    • as:强制类型转换(只适用于支持空值的类型转换)
      • string s = obj as string
      • string s = (string)obj唯一区别就是转换失败不会报错,会给赋空

    9、条件分支

    • if

    • switch

    10、循环

    • for

    • foreach

      • int [] B = { 11,22,33,44,55 };
        
        foreach(int t in B){
            Console.WriteLine(t);
        }
        // 11 22 33 44 55
        
        • 1
        • 2
        • 3
        • 4
        • 5
        • 6
    • while

    • do…while

  • 相关阅读:
    算法:(二)数组
    设计模式-桥接模式(Bridge)
    Linux-用户与用户组,权限
    第八章《Java高级语法》第3节:位运算符
    【Verilog】除2,正负数
    相关分析——皮尔森相关系数、t显著性检验及Python实现
    整合mysql多个bool值字段,用&查询
    Tuxera2023最新版本新功能特性
    【附源码】计算机毕业设计SSM体育馆场内设施预约系统设计
    攻防演练第四年的一些碎碎念
  • 原文地址:https://blog.csdn.net/qq_30769437/article/details/128107631