VB中如何简化引用其他Module内的Enum类型
问题描述
我在一个Module中声明了枚举类型:
friend Module M Enum E Elem1 Elem2 end Enum end Module
并在另一个类中使用它:
Class C console.writeline(M.E.Elem1) ' 可以正常运行 End Class
但我希望将M.E的写法简化为MyE,尝试了以下写法但无法成功:
Class C private myE as M.E ' 以及使用GetType的各种变体 console.writeline(myE.Elem1) end Class
请问是否有办法实现用MyE指代M.E?
解决方案
方法1:文件级别的Imports别名(最优解)
在包含Class C的代码文件最顶部(类定义之前)添加Imports语句,给枚举类型M.E直接起别名:
Imports MyE = M.E Class C Console.WriteLine(MyE.Elem1) ' 现在可直接用MyE代替M.E访问枚举成员 End Class
这种方式最简单直接,整个代码文件内都能通过MyE指代M.E。
补充说明
你之前尝试的private myE as M.E是声明了一个枚举的实例变量,而非类型别名。枚举的成员(比如Elem1)属于类型本身,不是实例属性,所以无法通过实例变量访问这些成员。
内容的提问来源于stack exchange,提问作者bernso
相关产品推荐
相关产品推荐

