Aclaraciones primero:
1. Sin leer el codigo, solo me baso en los mensajes de error
2. Uso C# que escencialmente es una sintaxis muy similar, pero! no igual:
Advertencia1:
trata de inicializar tu objeto antes de usarlo.
Código:
MiObjeto obj = new MiObjeto();
Advertencia 2: cuando tienes un metodo que regresa algun tipo de error:
Ej. MiMetodo recibe un parametro bool, y regresa un int
Código:
public int MiMetodo(bool test)
{
if(test)
{
return 1;
}
}
en el codigo de arriba, que pasa si test = false?... No hay un "return" en el caso que test=false.