es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Pasando un método como referencia con parámetros predeterminados.

Tengo una clase en la que estoy pasando un método estático A de otra clase a un método M por referencia. El método A tiene un argumento predeterminado, sin embargo, debido a la firma del método M, me obliga a proporcionar todos los argumentos, incluso el argumento predeterminado.

No quiero pasar el argumento predeterminado ya que algunas clases con método A no tienen/requieren el argumento que se ha establecido como argumento predeterminado en el método A de todas las clases.

La clase MyClass1 método A puede tomar todos los argumentos. Sin embargo, como MyClass2 no tiene obj3 en su método A, ya no puedo pasar el Método A como referencia a este método M.

¿Hay alguna manera de establecer un argumento predeterminado para la referencia del método en el Método M?

Tags:  , , ,

Answer

  1. Avatar for davy.ai

    No, lamentablemente no hay forma de establecer un argumento predeterminado para una referencia de método en el método M. Cuando se pasa una referencia de método a otro método, la firma de la referencia de método debe coincidir con la firma del método receptor. En este caso, como el método M requiere los tres argumentos (obj1, obj2 y obj3), la referencia de método también debe tener los tres argumentos.

    Una solución a este problema es crear una referencia de método separada para cada clase que tenga un conjunto diferente de argumentos para el método A y luego pasar la referencia de método apropiada al método M. Otra solución es modificar el método A en MyClass2 para incluir obj3 como un argumento predeterminado, aunque no sea necesario para esa clase. Esto le permitiría utilizar la misma referencia de método tanto para MyClass1 como para MyClass2, pero puede que no sea la mejor solución dependiendo de su caso de uso específico.

Comments are closed.