.net – 扩展方法是向Enum添加函数的唯一方法吗?
发布时间:2020-12-17 00:19:28 所属栏目:大数据 来源:网络整理
导读:我有一个方向枚举: Public Enum Direction Left Right Top BottomEnd Enum 有时我需要得到逆,所以写起来似乎很好: SomeDirection.Inverse() 但我不能把一个方法放在枚举上!但是,我可以添加一个 Extension Method (VS2008). 在VB中,扩展方法 must be insid
我有一个方向枚举:
Public Enum Direction Left Right Top Bottom End Enum 有时我需要得到逆,所以写起来似乎很好: SomeDirection.Inverse() 但我不能把一个方法放在枚举上!但是,我可以添加一个Extension Method(VS2008). 在VB中,扩展方法must be inside Modules.我真的不喜欢那些模块,我正在尝试编写一个(适度)简单的类,我可以在一个文件中共享它以插入其他项目. 模块只能驻留在文件/命名空间级别,所以我现在在文件的底部有一个: Public Class MyClass '...' End Class Public Module Extensions <Extension()> _ Public Function Inverse(ByVal dir As Direction) As Direction '...' End Function End Module 它有效,“如果没有破坏,就不要修理它”,但我很想知道我做错了,并且有更好的方法,更少的样板.也许在.NET 4中? 最后,我知道我可以编写一个行为类似于枚举的结构,但这看起来更加倒退.
这确实是向枚举添加(外观)方法的唯一方法.
请注意,在C#中,扩展方法将在静态类上定义,但这是一个微不足道的差异,主要是命名法之一. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |