ser*_*hio 0 .net vb.net .net-2.0
我需要对VB.NET(.NET 2)中的Enumeration进行NOT操作,是否可能?
<DefaultValue(0)> _
Public Enum Orientation
Descending = -1
Undefined = 0
Ascending = 1
End Enum
Run Code Online (Sandbox Code Playgroud)
通过ex定义一个Not操作来做
myObj1.Orientation = Not myObj2.Orientation
Run Code Online (Sandbox Code Playgroud)
规则:
Desceding > Ascending,
Ascending > Desceding,
Undefined > Undefined
Run Code Online (Sandbox Code Playgroud)
没有通用的方法可以做到这一点,因为枚举是一个整数类型,而Not对于整数类型,这是一个按位操作,这不是你想要的.但是,在您的情况下,您可以简单地编写一个反转方向的方法:
Module OrientationExtensions
<Extension()>
Public Function Invert(ByVal orientation As Orientation) As Orientation
Return -1 * orientation
End Function
End Module
Run Code Online (Sandbox Code Playgroud)
用法:
Dim orientation As Orientation
orientation = Module1.Orientation.Ascending
orientation = orientation.Invert()
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
295 次 |
| 最近记录: |