Você desenvolve em C# no seu dia a dia? Tem acompanhado os últimos avanços desta linguagem, mais especificamente na versão 10? Gosta de desafios de programação ?
Caso a resposta a uma ou mais das perguntas acima seja sim, você conseguiria, mudando apenas o tipo do parâmetro msg do método Foo(), fazer com que a saída do programa contenha apenas as linhas com números pares?
using System.Runtime.CompilerServices; | |
void Foo(int someParam, string msg) | |
{ | |
if (!string.IsNullOrEmpty(msg)) | |
Console.WriteLine($"{someParam} - {msg}"); | |
} | |
for(int i = 0; i < 10; i++) | |
Foo(i, $"Test {i}"); |
ou seja, fazer com que a saída do programa seja:
ao invés de:
As regras são:
- A única modificação válida no método Foo() é alterar o tipo do parâmetro msg.
- Você não pode modificar o corpo do programa, principalmente o laço for.
- Você não pode utilizar nenhuma técnica de IL post-processing.
- Qualquer outra alteração no código fonte é válida.
Seguem algumas considerações:
- A solução para o problema proposto envolve um recurso que foi aprimorado na versão 10 da linguagem.
- Observe bem o código acima; procure por elementos não essenciais; estes elementos contém pistas que podem ajudar.
Nos próximos posts eu vou apresentar e discutir a minha solução.
Divirta-se.
Adriano