• 类型设计


    CLR 控制类型字段的结构:

    [StructLayout(LayoutKind.Auto)]
    internal struct SomeValType {
      private readonly Byte m_b;
      private readonly Int16 m_x;
    }
    LayoutKind.Explicit:显示的指定每个字段的位置 可以使用属性 System.Runtime.InteropServices.FieldOffsetAttribute 来标记字段的位置

    友好程序集

    当一个程序集被编译的时候,它可以通过定义在 System.Runtime.CompilerServices 命名空间的 InternalsVisibleTo 属性来标记友好的目标程序集。这个属性有一个字符串类型的参数来表示友好程序集的名称和公钥(传递的字符串不能包括 版本区域化信息或者处理架构),被标记为有好多程序集可以访问程序集所有的 internal type 和这些类型的internal 成员。

    程序集A:

    using System;
    using System.Runtime.CompilerServices;  
    
    [assembly:InternalsVisibleTo("Wintellect, PublicKey=12345678...90abcdef")]
    [assembly:InternalsVisibleTo("Microsoft, PublicKey=b77a5c56...1934e089")]
    internal sealed class SomeInternalType { ... }
    internal sealed class AnotherInternalType { ... }

    友好的程序集 Wintellect”:

    using System;
    internal sealed class Foo {
    private static Object SomeMethod() {
    // This "Wintellect" assembly accesses the other assembly's
    // internal type as if it were a public type
    SomeInternalType sit = new SomeInternalType();
    return sit;
      }
    }
  • 相关阅读:
    原生JS实现简易随机点名功能
    react 字父组件传值
    关于react组件传值问题
    轮波图
    烟花
    this的详解
    封装多元素多属性的链式缓冲
    留言板设计的流程,拖动窗口
    运动的小球
    运动的小球自动变键盘控制
  • 原文地址:https://www.cnblogs.com/grayguo/p/5407446.html
Copyright © 2020-2023  润新知