一見非常に基本的な質問があります。高性能アプリケーションで呼び出される MyEnum.ToString() を使用して、定数文字列が実際に列挙型よりも優れているかどうかを判断しようとしています。
私はこのようなクラス、列挙型、メソッドを持っています...
Public Enum MyEnum
MyValue1
MyValue2
End Enum
Public Class MyImportantClass
Public Sub Foo(ByVal enumerationValue As MyEnum)
' Some code in here that needs to do this at some point
Dim str As String = enumerationValue.ToString()
End Sub
End Class
enumerationValue.ToString() にはパフォーマンスの問題があることを理解しています。ただし、別の開発者は、列挙型を使用する代わりに定数文字列を使用することを提案しました。私の問題は、メソッドのパラメーターが文字列であり、呼び出し元が必要なものを渡すことができることです。明らかに、文字列だけが機能するわけではないため、これは実行時のバグです。
Public Sub Foo(ByVal enumerationValue As String)
' Some code in here that needs to do this at some point
' Dim str As String = enumerationValue
End Sub
列挙型の安全性が必要ですが、定数のパフォーマンスが必要です。私が言ったように、私は自分のケーキを食べて食べる方法を探しています.