gpt4 book ai didi

vb.net - 在 VB.NET 中强制使用类型别名

转载 作者:行者123 更新时间:2023-12-04 05:51:00 25 4
gpt4 key购买 nike

如何在 VB.NET 或 C# 中为类型设置别名,以便在将别名用作函数中的参数类型时,意外使用未别名类型是错误的?

IE。

Imports AccessSpecifier = System.String

Module Accessors
Delegate Function IoOper(ByRef strm As System.IO.Stream) As Action
Public Function accessMethod(ByRef spec As AccessSpecifier) As IoOper
' implementation
' ...
End Function
End Module

Module Main
Public Sub Main()
Dim spec As AccessSpecifier = New AccessSpecifier(CType("READ_WRITE", Char()))
Dim val = Accessors.accessMethod(spec)
System.Console.WriteLine(val.GetType())
Dim shouldFail = Accessors.accessMethod("FAIL_ME")
System.Console.WriteLine(shouldFail.GetType())
End Sub
End Module

或者也许有更好的方法来解决这个问题?

总的来说,如果我抛出 Ints,我希望 IDE 强制我知道我在做什么。左右是指 Flag s,或 State s 和 Strings左右指 Name s, Property s 和 Record s。

帮助?

最佳答案

我从不喜欢 .NET 中的类型别名。它导致代码不精确,并且不清楚发生了什么。就像你的例子一样,当一个人去寻找 AccessSpecifier.vb 文件(或类)时,他们不会找到它。

此外,别名仅适用于您的项目,并且仅适用于单个代码文件。因此,您必须在要使用它的所有各种代码文件中定义该别名。

一个更好的(更容易阅读、更易于维护和更清晰的意图)选项是创建一个类并重载类型转换运算符以自动转换为/从字符串。通过这种方式,您可以像使用 String 一样保留使用新类的能力,但获得了严格的类型检查。

关于vb.net - 在 VB.NET 中强制使用类型别名,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10048518/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com