zoukankan      html  css  js  c++  java
  • CLR via C#读书笔记二:类型基础

    1、CLR允许将对象转换为它的(实际)类型或者它的任何基类型。

    2、is操作符检测对象是否兼容于指定类型,is操作符永远不抛出异常。

    3、as操作符返回对同一个对象的非null引用。如果对象不兼容,as返回null。as操作符的工作方式与强制类型转换一样,只是它永远不抛出异常——相反,如果对象不能转型,结果就是null。

    4、c# using指令的另一种形式允许为类型或命名空间创建别名,

    如:

    using  WintellectWidget=Wintellect.Widget;
    public sealed class Program
    {
      public static void main()
      {
        WintellectWidget w=WintellectWidget();
      }
    }

    5、命名空间还可以如下使用:

    namespace CompanyName
    {
        public sealed class A
        {
    
        }
        namespace X{
            public sealed class B{  }   //TypeDef:CompanyName.X.B
        }
    }
    

    6、类方法中的局部变量和值类型都放在线程栈中,引用对象的变量(实际就是指针吧?)也放在线程栈中,而对象实例放在托管堆中。

    7、堆上所有对象都包含两个额外成员:类型对象指针(type object pointer)和同步块索引(sync block index)。类型对象指针指向和对象对应的类型对象(一个System.Type的实例);

    8、CLR在执行指令时,会利用程序集的元数据,提取这些指令中所有类型的有关信息,创建一些数据结构来表示类型本身;(看书90~97页讲述执行方法时,CLR是如何在堆中工作的)

    9、类型对象实际是System.Type类的实例。

  • 相关阅读:
    贮油点问题(C++)
    二维数组操作
    二的幂次方(递归)
    [haoi2009]巧克力
    距离最远的牛
    ssh注解basedao简单的实现
    @service中构造方法报错
    spring注解 构造函数问题
    json与gson
    AsyncTask异步类的简单操作
  • 原文地址:https://www.cnblogs.com/yuzhoumanwu/p/8526699.html
Copyright © 2011-2022 走看看