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?
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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
No comments:
Post a Comment