Desafio da Semana #4
DESAFIO DA SEMANA #4
Por: Roberto Alexis Farah
Oi pessoal! Essa semana um amigo me enviou um código em C# e questionou o comportamento do código, pois ele achou o comportamento incorreto. Achei o problema bem interessante e resolvi publicá-lo para vocês.
Eis o código:
using System;
using System.Collections.Generic;
using System.Text;
namespace Test
{
public class StrangeStuff
{
private static String a = "";
public static String makeStrangeStuff()
{
a = "Anomaly";
try
{
return a;
}
finally
{
a = "Greater Anomaly";
}
}
}
class Program
{
static void Main(string[] args)
{
Console.WriteLine("{0}", StrangeStuff.makeStrangeStuff());
}
}
}
SINTOMA
O valor de “a” não é alterado quando makeStrangeStuff() retorna. Ou seja, StrangeStuff.makeStrangeStuff() retorna “Anomaly”.
PROBLEMA
Identifique o que faz com que esse sintoma ocorra, explique o comportamento, se é de fato algo esperado ou se a aplicação deveria proceder de modo diferente.
Particularmente o interessante desse problema é o entendimento do comportamento do código acima.
Na semana que vem colocarei a resposta.
Boa sorte!