Noticias

¡RECUERDA QUE SI ERES UN NUEVO USUARIO, DEBES PRESENTARTE PARA PODER PUBLICAR MENSAJES! | TENEMOS CANAL OFICIAL DE TELEGRAM: t.me/unity3dspain

Código no utilizado y compilación

Iniciado por iRobb, Marzo 29, 2016, 09:57:37 PM

Tema anterior - Siguiente tema
Hola!Me acabo de dar cuenta de una cosa muy curiosa y que no había visto antes. Tengo un código y entre todo hay dos funciones: funcion1() y funcion2(). función1 llama a función 2. La función1 no se utiliza en todo el código. Es para más adelante. He cambiado función2 y le he añadido un parámetro, o sea, funcion2(a) que no es por defecto. El compilador de VS me da error, claro, pero Unity se da cuenta que no la utilizo y no da error porqué, NO LA COMPILA! Qué bueeeeeenooooooo.Probadlo, por ver si se me ha ido la pinza o es así. Es fantástico.Saludos

Como tienes dichas funciones? Muestra algo del código.

Ostras, es un código complicadillo para lo que quiero explicar. Si quieres lo pongo. De todos modos me acabo de dar cuenta que no es así. El VS interpreta de una manera y el Mono de Unity de otra. Lo que ocurre es lo siguiente:
class a1 {
    protected virtual fa1(param1, param2 = default);
}

class a2 : a1 {
    protected override fa1(param1, param2);
}

class a3 : a2 {
    private void fa2() {
        this.fa1(param1);
    }
}
VS da error ya que la llamada a fa1 la quiere realizar sobre la clase a2 (nótese que la llamada es this, no base). Unity se va directamente a la clase a1 y no da ningún warning (acabo de revisarlo forzando que compile).


Ah, no te preocupes, no es un problema. Ya sé como funciona base, la herencia, etc. Es más una paranoia mental. Y lo lógico es como lo compila VS, no Unity.

C-C-Combo Breaker!!!!  Pues no había caído, pero en verdad sí que es un marrón el que no detecte el error XDDDDIgual para eso hicieron expresamente los Unit Tests, vaya usted a saber...

Los Unit Test no te aportarían nada. Solamente los Integrity Test te lo aportarían en este caso. Y estos test son sobre comportamiento esperado no de un error de sintaxis.Si Unity me hubiera dado el warning me hubiera puesto en sobre aviso. A partir de ahora miraré los warning y errores del VS primero también.

Etiquetas: