msil 笔记

public class TestImpl : ITest
{// Propertiespublic string Address{get{return "abc";}}//msil:address不是在接口中定义的
//hidebysig:使用时看不见这个方法,因为是给属性用的.specialname也是说是给属性用的(但不指明),只是说是特殊的.
.method public hidebysig specialname instance string get_Address() cil managed
{.maxstack 1.locals init ([0] string str)L_0000: nop L_0001: ldstr "abc"L_0006: stloc.0 L_0007: br.s L_0009L_0009: ldloc.0 L_000a: ret 
}
public string Name{get{return "1";}}
//name是在接定口定义的:
//多了newslot virtual final 这几个.
// .method
public hidebysig specialname newslot virtual final instance string get_Name() cil managed {.maxstack 8L_0000: ldstr "1"L_0005: ret } int ITest.Age{get{return 1;}set{}} //age是显示式实现的:
//不同点是用private修饰.其他的同上.get与set无区别. .method
private hidebysig specialname newslot virtual final instance void System.Reflection.ITest.set_Age(int32 'value') cil managed {.override System.Reflection.ITest::set_Age.maxstack 8L_0000: nop L_0001: ret } .method private hidebysig specialname newslot virtual final instance int32 System.Reflection.ITest.get_Age() cil managed {.override System.Reflection.ITest::get_Age.maxstack 1.locals init ([0] int32 num)L_0000: nop L_0001: ldc.i4.1 L_0002: stloc.0 L_0003: br.s L_0005L_0005: ldloc.0 L_0006: ret }}
//c#中的:abstract
.method public hidebysig specialname newslot abstract virtual instance string get_Tel() cil managed { }
//C#中的virtual
.method public hidebysig specialname newslot virtual instance string get_Memo() cil managed {.maxstack 1.locals init ([0] string str)L_0000: nop L_0001: ldstr ""L_0006: stloc.0 L_0007: br.s L_0009L_0009: ldloc.0 L_000a: ret }

 

 

 

普通类

实现接口

1.属性方法

.method public hidebysig specialname instance
 
string get_Address() cil managed
.method public hidebysig specialname instance
newslot virtual final 
string get_Name() cil managed

2.显示实现

 

.method private hidebysig specialname instance
newslot virtual final 
int32 System.Reflection.ITest.get_Age() cil managed

3.Virtual

.method public hidebysig specialname instance
newslot virtual 
string get_普通Virtual属性() cil managed
.method public hidebysig specialname instance
newslot virtual final没了
string get_Memo() cil managed

4.Abstract

.method public hidebysig specialname instance
newslot abstract virtual 
 string get_普通Abstract属性() cil managed
.method public hidebysig specialname instance
newslot abstract virtual
string get_Tel() cil managed

5.New

.method public hidebysig specialname instance
编译时直接优化掉了.
string get_普通未覆盖基类属性() cil managed
.method public hidebysig specialname instance
newslot virtual final 与1相同
string get_接口NEW属性() cil managed

 

.method public hidebysig specialname instance 
//天哪,覆盖基类中的new关键字只是个c#中的语法il不管这事,编译时将被调用方法直接找到了?
string get_覆盖基类属性() cil managed

 

 

 

 

下面是ITest的定义.

public interface ITest
{// Propertiesint Age { get; set; }string Name { get; }
} 

 

转载于:https://www.cnblogs.com/foreachlife/p/msil1.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/482701.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

焦李成院士:进化优化与深度学习的思考

来源:AI科技评论作者:焦李成整理:维克多编辑:青暮2021年12月17日,西安电子科技大学人工智能学院教授、欧洲科学院外籍院士、IEEE Fellow焦李成受邀参加2021中国计算机大会“下一代演化计算发展趋势”论坛,并…

5.3.1 TCP协议特点和TCP报文段格式

5.3.1 TCP协议特点和TCP报文段格式 文章目录tcp协议的特点tcp 报文段首部格式tcp协议的特点 tcp 报文段首部格式

互补性:从不同的角度思考同一个事物时,发现它同时具有不同甚至相互矛盾的性质...

来源:混沌巡洋舰检验一流智力的标准是头脑中能同时持有两种截然相反的观点,却能并行不悖。——弗朗西斯斯科特菲茨杰拉德显然,这种互补性推翻了学术的本体论。真理是什么?我们之所以要提出彼拉多的问题,并不是出于怀疑…

ObjectArx R14-2007下载地址

2008 -32位 http://download.autodesk.com/esd/objectarx/2008/ObjectARX_2008_32Bit.exe -64位 http://download.autodesk.com/esd/objectarx/2008/ObjectARX_2008_64Bit.exe 2007 -Core http://download.autodesk.com/esd/objectarx/2007/…

5.3.2 TCP连接管理

5.3.2 TCP连接管理 文章目录tcp 连接管理tcp的连接简历TCP传输连接中的SYN、ACK、SEQ、 AN分别是什么意思?syn洪泛攻击tcp的连接释放tcp 连接管理 tcp的连接简历 TCP传输连接中的SYN、ACK、SEQ、 AN分别是什么意思? syn洪泛攻击 tcp的连接释放

2021年量子计算的研发现状与未来展望

来源:AI科技评论作者:杏花编辑:青暮从硬件、软件和算法以及各国政策等方面展现量子技术最新进展。超导量子计算过去宣称实现的量子霸权在最新的获得戈登贝尔奖被宣告打破,但谷歌和IBM依然在这一领域有着雄心勃勃的计划。离子阱则凭…

Aligning Plots in a Column作图列对齐

Plot[Sin[x], {x, 0, Pi}] Plot[10000 Sin[x], {x, 0, Pi}]直接作图左边无法对齐,影响图的美观。可以使用左边界空格实现列对齐,代码如下: options {ImageSize -> 400, Frame -> True, ImagePadding -> {{60, Automatic}, {Automat…

5.3.3 TCP可靠传输

5.3.3 TCP可靠传输 文章目录

【动态规划】洛谷 P1282 多米诺骨牌

【动态规划】洛谷 P1282 多米诺骨牌 时间限制: 1 Sec 内存限制: 128 MB 题目描述 多米诺骨牌有上下2个方块组成,每个方块中有1~6个点。现有排成行的 上方块中点数之和记为S1,下方块中点数之和记为S2,它们的差为|S1-S2|。例如在图8-1中&#…

深度学习在工业推荐如何work?Netflix这篇论文「深度学习推荐系统Netflix案例分析」阐述DL在RS的优劣与经验教训...

来源:专知深度学习在推荐系统中如何发挥作用是一个重要的问题。最近来自Netflix的文章详细阐述了这一点指出:在建模用户物品交互方面,深度学习相比传统基线方法并无太大优势,而对于异质特征的表示融入深度学习则具有很好建模性能。…

5.3.4 TCP流量控制

5.3.4 TCP流量控制 文章目录tcp流量控制tcp流量控制

Nature封面,硅量子计算达到99%的准确率

来源:ScienceAI编辑:萝卜皮在 2022 年 1 月 20 日发布的《Nature》上,有三篇论文独立介绍了基于硅的量子计算平台,它们使用了多量子比特纠缠:一篇来自新南威尔士大学(UNSW) Andrea Morello 团队…

[poj3261]Milk Patterns

求出后缀数组和height数组&#xff0c;然后二分答案后分组查询&#xff0c;一个块内如果有超过k个那么这个答案就可以。 1 #include<bits/stdc.h>2 using namespace std;3 #define N 500054 int n,m,ans,a[N],b[N],h[N],sum[N],ra[N<<1],sa[N];5 char s[N],s1[N];6…

5.3.5 TCP拥塞控制

5.3.5 TCP拥塞控制 文章目录流量控制与拥塞控制区别

一文读懂2022年国家自然科学基金限项新旧政策对比

来源&#xff1a;国家自然科学基金委员会、微信公众号“锐动源”近日&#xff0c;《2022年度国家自然科学基金项目指南》正式发布&#xff0c;相较于2021年的项目指南&#xff0c;从对比来看&#xff0c;2022年度项目指南变动不大&#xff0c;最重要的几项改革在指南发布前均已…

go and git 代理

export http_proxy"socks5://127.0.0.1:1080" export https_proxy"socks5://127.0.0.1:1080"转载于:https://www.cnblogs.com/wlphp/p/11259358.html

神经网络通过研究任意单个星系,揭示整个宇宙的组成

来源&#xff1a;ScienceAI编译&#xff1a;绿萝科学家可能偶然发现了一种全新的宇宙学研究方法。宇宙学家通常通过尽可能多地观察宇宙来确定宇宙的组成。但这些研究人员发现&#xff0c;机器学习算法可以检查单个模拟星系&#xff0c;并预测其存在的数字宇宙的整体构成——这一…

R语言排序 -- sort() order() rank()

order() 的返回值是对应“排名”元素所在向量中的位置。注意返回的不是元素本身&#xff0c;而是元素的位置。 sort() 是直接对向量中的元素进行排序&#xff0c;返回的是排序后的元素组成的向量。 rank() 是求秩的函数&#xff0c;返回值是这个向量中对应元素的排名。 > x&…

手把手教你实现Java发送邮件(1)-发送简单的文本

说明&#xff1a;本博客已经收藏至我的gitee中的code_demo仓库&#xff08;点击此链接跳转&#xff09;中&#xff0c;且gitee中有相应的代码~ 欢迎访问~~ 不仅仅是code&#xff0c;还有一些通俗的讲解哦~ 文章目录一、Java实现邮件发送二、Java发送邮件Java实现纯文本邮件发送…