枚举类型反编译

本文分为2大部分

  • 反编译看枚举怎么用
  • 其实枚举用法很简单

反编译看枚举怎么用

枚举是基于泛型实现的,枚举是什么,其实枚举就是一个普通的类:enum是一个语法糖,Enum是对应的类: 
这里写图片描述

我们将源代码先编译,然后反编译可以看到(解语法糖之后): 
这里写图片描述 
很显然:enum Sex是一个final类,所以Sex无法被继承。同时反编译的代码让我们发现,枚举类其实已经继承Enum,java是不允许多继承的,所以enum Sex是封闭的,(枚举类)既不可以继承,也不可以被继承,但是可以使用接口。

还有一点要注意:枚举类的构造函数必须是private,为什么呀? 
因为枚举类是线程安全的,我们可以从反编译的代码里面看到其实枚举类用到的是静态方法来获取自己的final常量类对象,我们不需要也无法自己创建它的实例,因为JVM在加载这一个枚举类的时候,我们声明的所有枚举都已经被实例化了。,到这里:我们又得出一个结论:枚举类无法手动实例化。

但是假如我们想要自己继承Enum类,很可惜: 
这里写图片描述 
编译器也不会允许我们这样。

其实枚举用法很简单

其实枚举的用法很简单: 
其实就是调用自身内部的final静态类对象: 
这里写图片描述 
运行结果: 
这里写图片描述

转载于:https://www.cnblogs.com/dzhou/p/9553504.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: ilspy是一款用于反编译.NET程序集的工具,可以将使用C#、VB或其他.NET语言编写的程序反编译成可读的源代码。在进行ilspy反编译时,可以看到程序中的属性。 属性在C#和VB中是一种代码元素,用于在一个对象中存储和获取数据。在.NET程序中,属性通常是以getter和setter方法的形式出现。在ilspy反编译中,我们可以看到程序中每个属性的getter和setter方法的实现。 除了getter和setter方法外,属性还有一些其他的属性,例如访问修饰符(public、private、protected等)、属性类型、属性名称等。在ilspy反编译中,我们可以看到每个属性的这些属性被细节的列在代码中,方便我们进行查看和修改。 一些高级属性,如属性调用方法、是否可序列化等,也可以在ilspy反编译中查看。此外,ilspy还允许用户通过反编译程序获得程序集的完整类型结构,并支持导出反编译结果为代码文件。这种方式使得开发人员可以在查看反编译代码时更加方便和高效。 总体而言,ilspy反编译的属性包罗万象,可以更好地帮助开发人员在读取和修改源代码时理解程序的结构和逻辑。 ### 回答2: ilspy是一款开源的.NET反编译器,可以将编译后的.NET程序反编译C#或VB语言的代码。在使用ilspy进行反编译时,会遇到很多.NET程序中的属性(Property)。在.NET中,属性是一种特殊的成员,可以用于获取或设置对象的各个属性,相当于是一个访问字段的方法。 使用ilspy进行反编译后,可以看到.NET程序中各种属性的定义和用法。其中,类或结构体中的属性定义通常包含get和set方法,分别用于获取和设置属性的值。由于.NET中的属性可以有只读、只写、自动实现和外部访问等不同的访问级别和实现方式,因此在使用ilspy反编译时,需要注意属性的修饰符和类型等信息,以便更准确地理解反编译后的代码。 除了类或结构体中的属性,还有一些常见的.NET属性包括索引器(Indexer),事件(Event)、委托(Delegate)等。在使用ilspy进行反编译时,也需要仔细分析这些属性的定义和用法,以便更好地理解程序的功能和实现方式。总之,ilspy是.NET反编译领域中的重要工具,对于.NET开发者和安全研究人员来说都是非常有用的。 ### 回答3: ilspy是一个开源的.NET反编译工具,它允许用户将.NET程序汇编反编译C#或Visual Basic代码。反编译过程可以帮助开发人员理解程序的实现细节,特别是当源代码丢失或不可用时。 ilspy反编译器可以反编译各种.NET程序,包括库、控制台应用程序、Windows窗体和Web应用程序。它可以自动识别程序集的属性,包括程序集的名称、版本号、公钥和语言。同时,ilspy还可以反编译程序的类、方法、字段和属性等。 属性是对象或类型的元数据,它们描述了对象或类型的一些特征,例如名称、类型、可见性、访问级别等等。在.NET中,属性可以附加到类型、方法、字段、构造函数、枚举等。ilspy反编译器可以将属性反编译到反汇编代码中。 反编译后的属性包含很多信息,例如属性名称、类型、可见性、访问级别、是否静态等。例如,如果一个属性是只读的,那么ilspy会生成一个getter方法但不会生成setter方法;如果一个属性有一个私有的set方法,那么ilspy会生成一个私有的setter方法等等。 总之,ilspy反编译器是一个功能强大的工具,它可以反编译.NET程序并生成C#或VB代码。它可以自动识别程序集的属性,并反编译类、方法、字段和属性等。它的反编译结果包含了丰富的信息,可以帮助开发人员理解程序的实现细节。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值