2011-08-15 7 views
10

Estoy recibiendo el mensaje de advertencia ...¿Por qué mi función no cumple con CLS? Tipo

retorno de la función 'ConnectionNew' no es compatible con CLS.

... para esta función:

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

¿Qué significa este mensaje, y cómo puedo solucionarlo?

+1

¿Qué es 'MySqlConnection'? ¿Dónde está definido? El error indica que ese es el problema. – Oded

+0

'MySqlConnection' es miembro de' MySql.Data.MySqlClient'. ¿No tengo permitido usar eso? – Urbycoz

+3

Por supuesto que está permitido. Pero no es un ensamblaje que cumple con CLS. Y como tal, lo único que puede hacer es seguir la respuesta de @Hans. – Oded

Respuesta

21

Es porque está devolviendo un objeto de un tipo que no cumple con CLS. Nada que puedas hacer al respecto, no escribiste el tipo. Simplemente reconozca que sabe que no cumple, de lo contrario no causará ningún problema. A menos que use la función en otro idioma que no sea compatible con todos los tipos de .NET. Solución:

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

¿Es ese subrayado deliberado, o un error tipográfico? No importa, veo en una "decoración" de StructLayout que tiene el espacio y el guión bajo adjuntos, también, por lo que ahora es obvio para mí que no fue un error tipográfico. –

+1

El guión bajo significa una continuación de línea en VB, como si hubiera escrito ' Conexión de función públicaNuevo ...' (perdón por nigromancia) – mwfearnley

Cuestiones relacionadas