zoukankan      html  css  js  c++  java
  • 深入理解C#第二版笔记

    基础知识

    委托

    如果代码想要执行操作,但不知道操作细节,一般可以使用委托。例如:Thread类之所以知道要在一个新线程里运行什么,唯一的原因就是在启动新线程时,向它提供了一个ThreadStart委托实例。

    委托的构成

    1. 声明委托类型
    2. 创建一个要执行代码的方法
    3. 创建一个委托实例
    4. 调用(invoke)委托实例

    数据类型

    匿名类型

    var John = new { Name = "John" , Age = 23 };
    

    动态类型

    将变量声明为dynamic,编译器会对变量的几乎所有处理都区别对待,将所有绑定决策留给执行时。

    dynamic dyc = "hello";
    Console.WriteLine( dyc.Length );
    dyc = new sring[] { "hi" , "there" };
    Console.WriteLine( dyc.Length );
    

    Function委托类型及lambda表达式

    Func<int , int , string> func = ( x , y ) => ( x * y ).ToString();
    Console.WriteLine( func( 12 , 45 ) );
    

    值类型和引用类型

    对于引用类型的变量,它的值永远是一个引用。
    对于值类型的变量,它的值永远是该值类型的一个值。

    用泛型实现参数化类型

    泛型的限制

    泛型可变性的缺乏

    泛型不支持协变性,这是为了类型安全性着想,例如不能将List转换成List

  • 相关阅读:
    7 MSSQL数据库备份与恢复
    6.Netbackup-Oracle数据库恢复演练报告(下)
    5、Oracle备份(oracle备份脚本配置)
    1.6 NBU Catalog备份还原
    标示符和关键字的总结--希望别再犯错
    JDBC_基础6步骤- 及优化
    算法总结
    bootstrap-全局CSS&js插件
    bootstrap入门&栅格系统
    JavaScript中的事件
  • 原文地址:https://www.cnblogs.com/Shoring/p/4534804.html
Copyright © 2011-2022 走看看