美文网首页
菜鸟文档 C#教程(一)

菜鸟文档 C#教程(一)

作者: Die时而动 | 来源:发表于2022-05-27 23:05 被阅读0次

    菜鸟文档 C#教程

    [toc]
    只记录与C++不同处

    初级语法

    • C#运算符
      • is 判断类型
      • as 无异常强制转换
    • C#循环
      • foreach(type i in type[] list)
    • C#封装
      • internal
      • protected internal
    • C#方法
      • 输出传参
        • out
      • 引用传参
        • ref
    • C#可空类型
      • ?单问号定义可空类型
        • int? i;默认为null
      • ??双问号Null合并运算符
        • 按顺序从前到后返回第一个不为null的值
    • C#数组
      • 多维数组
        • int[,] 二维
      • 交错数组
        • 类似C多维数组
      • 参数数组
        • function(params int[])
      • Array类

    高级语法

    • 特性Attribute
      • 元数据
        • 编译器指令
        • 注释
        • 描述
        • 方法
        • ...
      • 声明性标签
      • 使用特性
        • 在应用元素前一行 [特性(参数)]
      • 预定义特性
        • AttributeUsage辅助声明一个自定义特性
        • Conditional标记一个条件方法Debug或Trace
        • Obsolete标记过时元素
      • 自定义特性
        • 声明自定义特性类
          • 使用AttributeUsage进行标记特性
          • 继承System.Attribute
        • 构建自定义特性
          • 确定私有属性和共有属性
          • 必须的定位positional参数和可选的named参数
          • positional属性通过构造函数初始化
        • 应用自定义特性
          • 前一行使用特性标记即可
        • 通过反射访问特性
    • 反射Reflection
      • 作用
        • 运行时查看元数据
        • 审查集合中各种类型,实例化
        • 延迟绑定方法属性
        • 运行时创建新类型,使用类型
    • 属性Property
      • 基本概念
        • 命名named成员
        • 域Field:类或结构中的成员变量或方法
        • 属性:域Field的拓展
          • 访问私有域的值
      • 访问器accessor
        • 声明定义
        // 声明类型为 string 的 Code 属性
        public string Code
        {
           get
           {
              return code;
           }
           set
           {
              code = value;
           }
        }
        
        • 使用:当作公有域来使用
      • 抽象属性
        • 声明加abstract,实现加override
    • 索引器Indexer
      • 使用数组访问运算符[]访问类的成员
      • 声明类似属性的声明,也有点像[]运算符重载
        • element-type this[int index]{get{} set{}}
      • 索引器也可被重载,不一定非得整型
        • int this[string name]
    • 委托delegate
      • 概念:类似函数指针,可用委托间接调用同参,同返回的别的方法
      • 声明:delegate 返回值与参数与回调调用方法一致
      • 实例化:将回调方法名当作参数传入new中
      • 使用:正常函数调用形式
      • 多播:+,-运算符组合多个相同接口结构的回调函数,使用时会顺序执行
    • 事件event
      • 概念
        • 事件:通过委托特性调用一系列回调函数
        • 发布器订阅器模型:发布器声明委托和事件,订阅器提供事件发生时,该调用的回调函数
      • 发布器定义:
        • 先声明委托
        • event delegatename eventname;
        • 编写使用委托机制的“逻辑事件”方法,达到“事件”发生通过委托调用回调方法的逻辑。
      • 订阅器定义:
        • 提供回调方法
      • 使用:
        • 实例化发布器与订阅器
        • 定义发布器中的委托,与订阅器中的回调方法相关联
          • 可直接将实例化的委托通过+-号对发布器中事件本身进行定义
        • 通过发布器调用“逻辑事件”方法,内部调用到委托时,就会调用关联好的订阅器中的回调方法
        EventTest e = new EventTest(); /* 实例化对象,第一次没有触发事件 */
         subscribEvent v = new subscribEvent(); /* 实例化对象 */
         e.ChangeNum += new EventTest.NumManipulationHandler( v.printf ); /* 注意!这里是事件进行委托的加减操作 */
         e.SetValue( 7 );
         e.SetValue( 11 );
        
    • 集合Collection
      • ArrayList动态数组
      • Hashtable哈希表
      • SortedList排序列表
      • Stack堆栈
      • Queue队列
      • BitArray点阵列
    • 泛型Generic
      • 延迟编写类或方法中的数据类型,运行时指定
      • 声明:在类或方法名后加尖括号参数为泛型类型名<T>
      • 使用:加尖括号指定具体类型
      • 泛型特性
        • 重用性
        • 创建泛型集合类
        • 各种泛型组合
        • 对泛型进行约束:使用where语句
        • 关于泛型数据类型的信息,可在运行中使用反射获取
          • typeof(T)返回System.Reflection.MemberInfo
      • 应用类型
        • 泛型类
        • 泛型方法
        • 泛型委托
        • 泛型事件
    • 匿名方法
      • 只有名称没有主体的方法
      • 使用委托对象调用委托所引用的方法
      delegate void NumberChanger(int n);
       // 使用匿名方法创建委托实例
      NumberChanger nc = delegate(int x)
      {
         Console.WriteLine("Anonymous Method: {0}", x);
      };
      
      // 使用匿名方法调用委托
      nc(10);
      
    • 不安全代码
    • 多线程
      • 线程:程序执行路径
      • 线程生命周期
        • 创建状态
        • 就绪状态
        • 不可运行状态
        • 死亡状态

    相关文章

      网友评论

          本文标题:菜鸟文档 C#教程(一)

          本文链接:https://www.haomeiwen.com/subject/xadbprtx.html