gpt4 book ai didi

vb.net - 我应该将全局常量放在 .NET 库中的什么位置?

转载 作者:行者123 更新时间:2023-12-02 11:43:43 25 4
gpt4 key购买 nike

我正在使用一个 API,该 API 会以名称=值的格式输出大量数据。首先,我通过简单的字符串比较来处理所有内容:

Sub ProcessData(ByVal name As String, ByVal value As String)
If name = "thisname" Then
DoThis(value)
ElseIf name = "thatname" Then
DoThat(value)
End If
End Sub

但是由于需要处理超过 20 个不同的可能名称,这很快就变得难以维护。我的下一步是将字符串移至私有(private)子类中定义的常量:

 Private Class Parameters
Private Sub New()
End Sub

Public Const ThisName As String = "thisname"
Public Const ThatName As String = "thatname"

End Class

我的方法如下所示:

    Sub ProcessData(ByVal name As String, ByVal value As String)
If name = Parameters.ThisName Then
DoThis(value)
ElseIf name = Parameters.ThatName Then
DoThat(value)
End If
End Sub

这已经是一个巨大的飞跃,但现在我发现自己需要能够在其他类中使用这些常量。我对是否将它们转移到全局类犹豫不决,但我只是看不到其他选择。

全局常量去了哪里?

最佳答案

常量应该是 Private 或 Friend。失败模式是它们的值被编译到 IL 中。因此,如果您为一个程序集创建错误修复并更改公共(public)常量,则使用更新的程序集的其他程序集仍然使用旧值。非常令人讨厌的故障模式。

如果您需要公共(public)常量值,那么您应该使用 ReadOnly 关键字。

关于vb.net - 我应该将全局常量放在 .NET 库中的什么位置?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10235550/

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