系统.文本.编码值



我的可选参数出错,它说"需要常量表达式">

如何解决问题?

Private Function Write_Text_To_File(ByVal Text_File As String, _
                              ByVal Text As String, _
                              ByVal Append_Text As Boolean, _
                              Optional Encoding As System.Text.Encoding = System.Text.Encoding.Default) As Boolean
    Try : Using TextFile As New IO.StreamWriter(Text_File, Append_Text, Encoding) : TextFile.WriteLine(Text) : End Using
        Return True
    Catch ex As Exception
        'Return False
        Throw New Exception(ex.Message)
    End Try
End Function

更新:

溶液

#Region " Write Text to File "
' [ Write Text to File Function ]
'
' // By Elektro H@cker
'
' Examples :
'
' Write_Text_To_File("C:Test.txt", "Text", False)
' Write_Text_To_File("C:Test.txt", "Text", True, System.Text.Encoding.UTF8)
Private Function Write_Text_To_File(ByVal Text_File As String, _
                              ByVal Text As String, _
                              ByVal Append_Text As Boolean, _
                              Optional Encoding As System.Text.Encoding = Nothing) As Boolean
    Try
        If Encoding Is Nothing Then Encoding = System.Text.Encoding.Default
        Using TextFile As New IO.StreamWriter(Text_File, Append_Text, Encoding) : TextFile.WriteLine(Text) : End Using
        Return True
    Catch ex As Exception
        'Return False
        Throw New Exception(ex.Message)
    End Try
End Function
#End Region

如何解决问题?

好吧,您根本不能Encoding.Default用作默认参数值。

您可以做的是使用 Nothing 作为默认参数值,并且只需具有:

If Encoding Is Nothing Then
    Encoding = System.Text.Encoding.Default
End If

请注意,这确实意味着您不能将Nothing用于不同的含义。

另一种选择是只使用重载 - 提供一个没有编码参数的版本,该版本只是使用编码参数调用版本,传入Encoding.Default

另外两点需要注意:

  • 参数名称不遵循 .NET 命名约定;它们应该是驼峰
  • Encoding.Default通常是一个不好使用的默认值(并且名称不佳(。如果您不指定默认编码,.NET 中的几乎所有内容实际上都使用 Encoding.UTF8 作为默认编码;我敦促你效仿。

相关内容

  • 没有找到相关文章

最新更新