Autor
|
Tema: Problema de accesibilidad (Leído 4,352 veces)
|
jaxoR
Desconectado
Mensajes: 93
?
|
Hola, tengo un problema que no puedo solucionar. Me arroja error al tratar de pasar un registro como parámetro a un método. Error: Error 1 Incoherencia de accesibilidad: el tipo de parámetro 'registro' es menos accesible que el método 'método'
Código donde me arroja el error: public partial class Form1 : Form { struct registro { public String nombre; public String apellido; public String dias; public String horario; } public void ObtenerAlumno(registro alumno, int d) { char hora = ObtenerHorario(alumno.horario, alumno.dias, d); String horario = HoraACadena(hora); richTextBox1.Text = alumno.nombre + " " + alumno.apellido + " "; } public Form1() { InitializeComponent(); registro alumno; int nd = 0; ObtenerAlumno(alumno, nd); }
|
|
« Última modificación: 14 Abril 2015, 16:44 pm por wiD^ »
|
En línea
|
|
|
|
El Benjo
|
Eso se debe a que la estructura es privada y el método es público. Verás el propósito de hacer público un método es hacerlo accesible fuera de la clase en que es declarado. Si tu método es llamado desde otra clase entonces debes hacer pública también la estructura. Si tu método no va ser llamado desde otra clase, entonces declara el método cómo privado.
Dinos si con esto se resolvió tu problema.
|
|
|
En línea
|
www.es.neftis-ai.comSí hay un mejor lenguaje de programación y es ese con el que puedes desarrollar tus objetivos.
|
|
|
DarK_FirefoX
Desconectado
Mensajes: 1.263
Be the change you wanna see in te world
|
Primero que todo, me parece que tienes que inicializar registro alumno
O sea, algo como: registro alumno = new registro ();
sino, te va a saltar un error también. Ahora, en cuanto al error al que te refieres, te explico. Como el método ObtenerAlumno es public, tu lo puedes llamar desde fuera de la clase del formulario. En este caso, como el struct registro
debes hacerlo público, public struct registro
o puedes también hacer el método ObtenerAlumno que sea privateLo puedes hacer de acuerdo a tus necesidades. Lo que pasa es que si el método es público y el struct no lo es, como se supone que vas a pasarle un "registro" al método desde afuera de la clase si no puedes acceder al struct para definirlo porque es privado. Espero haberte ayudado. Saludos
|
|
« Última modificación: 2 Abril 2015, 07:16 am por DarK_FirefoX »
|
En línea
|
|
|
|
jaxoR
Desconectado
Mensajes: 93
?
|
Ahora me arroja error al ejecutar, pero no al cambiar. Sintaxis incorrecta cerca de ','. SqlCommand Comando = new SqlCommand (string.Format("Select (Nombre, Apellido, Dias, Horario) from chicos where Dias like '%{0}%'", nd .ToString()), db ); SqlDataReader reader = Comando.ExecuteReader();
|
|
|
En línea
|
|
|
|
jaxoR
Desconectado
Mensajes: 93
?
|
bump
|
|
|
En línea
|
|
|
|
El Benjo
|
Creo que ese error se debe a que la cadena que devuelve nd.ToString() debería estar encerrada entre comillas. Es decir algo así: SqlCommand Comando = new SqlCommand (string.Format("Select (Nombre, Apellido, Dias, Horario) from chicos where Dias like '%{0}%'", "\"" + nd .ToString() + "\""), db ); SqlDataReader reader = Comando.ExecuteReader();
|
|
|
En línea
|
www.es.neftis-ai.comSí hay un mejor lenguaje de programación y es ese con el que puedes desarrollar tus objetivos.
|
|
|
jaxoR
Desconectado
Mensajes: 93
?
|
No, sigue el mismo error :S
|
|
|
En línea
|
|
|
|
El Benjo
|
Intenta lo mismo con las comillas sencillas, es decir ponerlas de la forma \'
|
|
|
En línea
|
www.es.neftis-ai.comSí hay un mejor lenguaje de programación y es ese con el que puedes desarrollar tus objetivos.
|
|
|
jaxoR
Desconectado
Mensajes: 93
?
|
Nop, sigue el mismo problema
|
|
|
En línea
|
|
|
|
jaxoR
Desconectado
Mensajes: 93
?
|
Bueno, busqué la solución por mi mismo. La coloco aquí por si otro tiene el mismo problema. El problema es la consulta al select, le saque los paréntesis de lo que quería obtener, y se solucionó. La consulta quedaría así: SqlCommand Comando = new SqlCommand (string.Format("Select Nombre, Apellido, Dias, Horario from chicos where Dias like '%{0}%'", snd ), db );
|
|
« Última modificación: 14 Abril 2015, 16:43 pm por wiD^ »
|
En línea
|
|
|
|
|
|