一、C#入门

本文档详细介绍了C#编程中的注释、代码折叠、类型系统、常量、转义字符、类型转换(包括隐式和显式)、异常捕获、运算符及条件分支和循环。重点讨论了类型转换的各种方法,如括号强转、Parse、Convert以及toString,并举例说明了异常处理的try-catch-finally结构。此外,还涵盖了算数、逻辑、位运算符以及三目运算符的使用。
摘要由CSDN通过智能技术生成

点击访问 C# 官方文档

1、注释

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

2、折叠代码

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

3、C# 的类型系统

4、常量 const

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

5、转义字符 \

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

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;

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");

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");

6.2.4、其他类型转string

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

7、异常捕获

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

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"
  • string.Format("待拼接内容", ..."内容段")
string name = "小白";
int age = 18;
string hobby = "吃饭睡觉打代码";
Console.WriteLine(string.Format("我是{0},今年{1}岁,爱好:{2}", name, age, hobby));
// 我是小白,今年18岁,爱好:吃饭睡觉打代码

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
      
  • while

  • do…while

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

纯纯的小白

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值