C#图解教程读书笔记(四 预处理、反射、特性、C#6.0,7.0新内容)

本文详细介绍了C#中的命名空间、程序集、异常处理、预处理指令、反射和特性。讲解了using别名和using static的用法,以及程序集的构成。在异常部分,提到了Conditional特性及调用者信息特性。接着,讨论了C#6.0和C#7.0的新特性,如字符串插值、空条件运算符、异常过滤器和值元组。此外,还介绍了如何检查和获取特性,以及析构函数和Dispose模式。最后,提及了Parse和TryParse在处理转换异常时的不同。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >


提要,此文章并不会记录过于基础的东西,只会记录个人认为比较重要的概念以及实用的代码,如果您是新手强烈建议阅读实体书,自己一步一步敲一遍


第二十二章 命名空间和程序集

  • using 别名 usign Sys = System;
  • using static 引用指定命名空间中特定的类,从而使用其静态成员
  • 程序集的构成 在第一章.Net中就讲过了主要的是CIL通过JIT动态编译使用的东西、程序集中类型的元数据、引用其他程序集列表等等。

第二十三章 异常

第二十四章 预处理指令

  • 概念 指示编译器如何处理源代码
  • #define 必须在C#代码前
  • #line 行号指令

第二十五章 反射和特性

  • 什么叫做反射? 第一章和第二十二章讲了程序集,知道程序集中包含所有类型的元数据(meta数据)。元数据是对程序以及类型的描述。而反射就是程序在运行时查看元数据
  • 特性是什么? 是一种允许我们向程序集添加元数据的语言结构。目的:告诉编译器将某组元数据嵌入程序集
  • Conditional 将会忽略方法中的所有调用,下面是使用,注释了将不会显示XXX
  • 调用者信息特性 CallerFilePath、CallerLineNumber、CallerMemberName。用于方法的参数。
  • 调试特性 在进行调试时,使用DebugStepThrough将不会进入某些地方。适用于类、结构体、构造方法、访问器、方法。
  • 全局特性 [assembly:特效类名] 放在命名空间外。常放在AssemblyInfo.cs中,用于公司、产品版权信息等
  • 自定义特性 自定义特性只需要继承System.Attribute。自定义特性类也是类,依然可以使用相关特性修饰。AttributeUsage
  • 使用特性类
  1. 是否使用了某特性 type.IsDefined(AttType, 是否搜索类的继承树)
  2. 获得使用的特性 type.GetCustomAttributes返回object[], 需要转换

第二十六章 C#6.0和C#7.0新增内容

  1. 字符串插值 $"数值为:{value}"
  2. 自动属性初始化 public int Count{get;set;} = 20
  3. 属性表达式 public int Count=>personCount + 2
  4. 空条件运算符 someObj?.Method() someObj不为空则执行Method函数
  5. 异常过滤器 catch(Exception ex) when (ex.Message.Contains("404"))
  6. 值元组 ValueTuple结构体
    
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值