Saltar al contenido

no se puede asignar void a una variable local implícitamente tipada con var y foreach

Si encuentras alguna incompatibilidad con tu código o trabajo, recuerda probar siempre en un entorno de testing antes añadir el código al trabajo final.

Solución:

Foreach devoluciones void es por eso que está recibiendo el error. Su declaración en el lado derecho de la asignación no está devolviendo nada. Puede hacer lo mismo en dos declaraciones como:

var v = new List()  this ;
v.ForEach(x =>  x.GetType().Name.Contains(typeof(Button).Name); );

En su código actual está creando un nuevo List y luego itera sobre cada elemento de la lista, pero no devuelve nada.

Como ha señalado Jon Skeet en el comentario, no tendrá ningún efecto en la lista. Supongo que está tratando de obtener todos los botones de su lista de formularios que puede hacer:

var allButtons = v.SelectMany(r => r.Controls.OfType

Sospecho que realmente estás buscando Where – solo llamando Contains en un ForEach llamar no va a hacer nada por ti. Del mismo modo, no creo que realmente estés buscando una lista de formularios si te interesa botones. Sospecho que puede estar buscando:

var buttons = this.Controls.OfType

Tenga en cuenta que esto no entrará en los controles anidados; si necesita hacer eso, necesitará algo recursivo. (Es posible que pueda encontrar otras preguntas sobre eso… no ayuda que no sepamos si se trata de WinForms, WebForms, otra cosa…)

Recuerda comunicar esta sección si te fue útil.

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *