0

선택적 인수에 오류가 발생했습니다. "상수 표현식이 필요합니다"라고 표시됩니다.System.Text.Encoding value

어떻게 해결할 수 있습니까?

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 

UPDATE :

해결 내가 문제를 해결할 수있는 방법

#Region " Write Text to File " 

' [ Write Text to File Function ] 
' 
' // By Elektro [email protected] 
' 
' 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 

답변

1

?

글쎄, 당신은 단순히 는 기본 매개 변수 값으로 Encoding.Default을 사용하지 수 있습니다.

은 당신이 할 수있는 것은 기본 매개 변수 값으로 사용 Nothing이며, 단순히 있습니다

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

이 마음에게, ​​다른 의미를 Nothing를 사용할 수를 의미한다.

또 다른 방법은 과부하를 사용하는 것입니다. 버전 번호 인코딩 매개 변수없이 Encoding.Default으로 전달하여 버전을 제공하십시오.

다른 두 가지 점에 유의하십시오 : 귀하의 매개 변수 이름은 .NET naming conventions을 따르지 않는

  • ; 그들은 낙타해야합니다
  • Encoding.Default 일반적으로 불량 기본값 (사용의 불충명)입니다. .NET에서 사용되는 거의 모든 것들은 실제로 지정하지 않으면 Encoding.UTF8을 기본 인코딩으로 사용합니다. 나는 너희에게 복종 할 것을 강력히 권할 것이다.
+0

너무 많이! – ElektroStudios

+0

낙타 겉면을 의미하는 것이 무엇인지 예를 들려 줄 수 있습니까? 나는 영어를 말하지 않으며 그 말을 번역 할 수 없다. (구글은 문자 그대로 그것을 낙타로 번역한다 ...) – ElektroStudios

+0

@ElektroHacker : 간단한 검색을 시도 했습니까? http://en.wikipedia.org/wiki/CamelCase (그리고 명명 규칙에 대한 링크 된 문서를 참조하십시오.) –