Why is my function not CLS-compliant?

Urbycoz picture Urbycoz · Aug 15, 2011 · Viewed 14.8k times · Source

I'm getting the following warning message...

Return type of function 'ConnectionNew' is not CLS-compliant.

...for this function:

Public Function ConnectionNew(ByVal DataBaseName As String) As MySqlConnection
      Dim connection As MySqlConnection = Nothing
      connection = getConnection(DataBaseName())
      Return connection
End Function

What does this message mean, and how can I fix it?

Answer

Hans Passant picture Hans Passant · Aug 15, 2011

It is because you are returning an object of a type that's not CLS compliant. Nothing you can do about that, you didn't write the type. Just acknowledge that you know that it isn't compliant, it isn't otherwise likely to cause any problems. Unless you use the function in another language that doesn't support all the .NET types. Fix:

<CLSCompliant(False)> _
Public Function ConnectionNew(ByVal DataBaseName As String) As MySqlConnection
   '' etc...
End Function