是否不返回任何内容或根本不返回任何内容

Cai*_*que 0 vb.net visual-studio-2010 visual-studio

最初不返回值的函数是否应该返回Nothing(因为 Visual Studio 在End Function语句中添加了一个绿色曲线,询问您是否忘记返回值),或者我可以忽略 VS 的提示?回国有什么影响Nothing,或者有什么影响吗?

\n\n

tl;dr:这个示例代码应该返回Nothing还是不需要?真的很欢迎解释!

\n\n
    Public Shared sCaminhoGravacaoXML As String = "C:\\XMLData\\"\n\n    Public Shared Function VerificaPastasXML()\n\n        If Not IsNothing(sCaminhoGravacaoXML) And sCaminhoGravacaoXML <> "" Then\n\n            Dim sRaiz As String = sCaminhoGravacaoXML\n\n            If Not FileIO.FileSystem.DirectoryExists(sRaiz) Then\n                FileIO.FileSystem.CreateDirectory(sRaiz)\n            End If\n\n            If Not Directory.Exists(sRaiz & "tempXML") Then\n                Dim diInfo As DirectoryInfo = Directory.CreateDirectory(sRaiz & "tempXML")\n                diInfo.Attributes = FileAttributes.Directory Or FileAttributes.Hidden\n            End If\n\n        Else\n            sErroBaixaXML = "N\xc3\xa3o foi poss\xc3\xadvel montar a estrutura de pastas para os arquivos" & vbCrLf & "XML de NFe, favor consultar os par\xc3\xa2metros da filial!"\n        End If\n\n    End Function\n
Run Code Online (Sandbox Code Playgroud)\n

Hei*_*nzi 5

\n

此示例代码应该返回 Nothing 还是不需要?

\n
\n\n

由于它从不返回值,因此它应该是一个Sub. Function向读者暗示返回了一个值,因此您的函数看起来有问题,就像现在一样,让每个必须维护它的人感到困惑。

\n\n

从技术上讲,如果没有显式声明,aFunction会自动返回返回数据类型的默认值return。因此,您的函数(使用返回类型隐式声明Object)\xc2\xb9 将返回Nothing; 返回类型为 的函数Integer将返回0等。

\n\n

由于忘记返回值是导致错误的常见原因,因此警告可以为您提供帮助。如果您返回默认值,最好使用显式return声明来明确这一点。

\n\n
\n\n

\xc2\xb9 请考虑激活Option Strict以避免此类隐式声明。

\n