Usuário com melhor resposta
unreachable code detected C#

Pergunta
-
Gostaria de saber porquê me dá (unreachable code detected) quando eu tento continuar o código abaixo de "
return temp;" ???
string[] ResName = GetRes();
for (int i = 0; i < ResName.Length; i++)
{
Extract(@"Caminho Completo", "Folder", ResName[i]);
}
}
static void Extract(string outDirectory, string internalFilePath, string resourceName)
{
const string nameSpace = "ConsoleApplication1";
Assembly assembly = Assembly.GetCallingAssembly();
using (Stream s = assembly.GetManifestResourceStream(nameSpace + "." + (internalFilePath == "" ? "" : internalFilePath + ".") + resourceName))
using (BinaryReader r = new BinaryReader(s))
using (FileStream fs = new FileStream(outDirectory + "\\" + resourceName, FileMode.OpenOrCreate))
using (BinaryWriter w = new BinaryWriter(fs))
w.Write(r.ReadBytes((int)s.Length));} static string[] GetRes() { string[] temp = { "arquivos incorporados" }; return temp;
já tentei isto mas sem sucesso https://www.dotnetperls.com/unreachable
- Editado Flipcarloz sábado, 28 de janeiro de 2017 08:07
Respostas
-
Olá.
Digamos que o compilador "testa" as condições/fluxo do seu programa, durante o processo de compilação pra código nativo.
Ele dá essa mensagem em situações que um código NUNCA vai ser executado.
Quando você da um return, você interrompe a execução do método,logo o que está abaixo dele nao vai ser executado.
Nesse link que você colocou,o autor definia uma variavel com valor fixo, que nunca seria modificada e testava uma condição que nunca aconteceria,por isso esse aviso era informado no dele.
O que ele fez, foi implementar uma diretiva que desabilitava o aviso.Mas ele continuaria ocorrendo em tempo de execução.
A diretiva funciona pra ignorar o aviso,mas o problema vai dar da mesma forma, acho mais interessante rever o metodo que você está fazendo que está causando o problema.
- Editado Rodrigo Suleiman sábado, 28 de janeiro de 2017 12:29
- Marcado como Resposta Flipcarloz sábado, 28 de janeiro de 2017 12:31
-
Olá,
Você se refere a extrari um arquivo que você definiu como Embedded Resource?
Caso positivo, tem esse(olhar a resposta,segundo post):
http://stackoverflow.com/questions/13031778/how-can-i-extract-a-file-from-an-embedded-resource-and-save-it-to-disk- Editado Rodrigo Suleiman sábado, 28 de janeiro de 2017 12:37
- Marcado como Resposta Flipcarloz sábado, 28 de janeiro de 2017 13:05
Todas as Respostas
-
Olá.
Digamos que o compilador "testa" as condições/fluxo do seu programa, durante o processo de compilação pra código nativo.
Ele dá essa mensagem em situações que um código NUNCA vai ser executado.
Quando você da um return, você interrompe a execução do método,logo o que está abaixo dele nao vai ser executado.
Nesse link que você colocou,o autor definia uma variavel com valor fixo, que nunca seria modificada e testava uma condição que nunca aconteceria,por isso esse aviso era informado no dele.
O que ele fez, foi implementar uma diretiva que desabilitava o aviso.Mas ele continuaria ocorrendo em tempo de execução.
A diretiva funciona pra ignorar o aviso,mas o problema vai dar da mesma forma, acho mais interessante rever o metodo que você está fazendo que está causando o problema.
- Editado Rodrigo Suleiman sábado, 28 de janeiro de 2017 12:29
- Marcado como Resposta Flipcarloz sábado, 28 de janeiro de 2017 12:31
-
-
Olá,
Você se refere a extrari um arquivo que você definiu como Embedded Resource?
Caso positivo, tem esse(olhar a resposta,segundo post):
http://stackoverflow.com/questions/13031778/how-can-i-extract-a-file-from-an-embedded-resource-and-save-it-to-disk- Editado Rodrigo Suleiman sábado, 28 de janeiro de 2017 12:37
- Marcado como Resposta Flipcarloz sábado, 28 de janeiro de 2017 13:05
-
-