Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

280
Visualizações
La función local de C# 7 no funciona como se esperaba y no se muestran errores

Tengo una aplicación Asp.Net MVC que se ejecuta con la versión de framework .NET 4.5 y estoy usando la versión pro VS2017. Los usuarios pueden cargar archivos adjuntos que incluyen, entre otros:

  • Sobresalir
  • Palabra
  • PowerPoint
  • pdf
  • jpeg
  • png

Así que tengo una función private que es la siguiente:

 private string ImageExtension(string path) { string noImagePath = HttpContext.Current.Server.MapPath("~/Content/images/Template/No-Image-Available-100x100.jpg"); string fileExtension = System.IO.Path.GetExtension(path); switch (fileExtension) { case ".jpg": case ".jpeg": case ".gif": case ".png": return path; default: return noImagePath; } }

Como puede ver, es muy simple y no hace nada elegante. Como solo estoy usando esto en un lugar, pensé en hacer uso de la nueva función local de C# 7. Así que seguí adelante y creé mi función principal de la siguiente manera y agregué ImageExtension(string path) dentro de ella.

 public void BugInfo(HttpPostedFileBase file) { if(file != null && file.ContentLength > 0) { string fileName = file.FileName; string directoryPath = "directory path"; //save path of string savePath = System.IO.Path.Combine(directoryPath, fileName); string testString = ImageExtension(savePath); string ImageExtension(string path) { string noImagePath = HttpContext.Current.Server.MapPath("~/Content/images/Template/No-Image-Available-100x100.jpg"); string fileExtension = System.IO.Path.GetExtension(path); switch (fileExtension) { case ".jpg": case ".jpeg": case ".gif": case ".png": return path; default: return noImagePath; } } } //save values to db here }

Con el código anterior, mi proyecto se compila sin ningún error. Tan pronto como presiono F5 o Ctrl + F5 aparece la siguiente pantalla de error

ingrese la descripción de la imagen aquí

Si ErrorList la Lista de errores para ver si hay algún error, no obtengo ninguno, como puede ver a continuación.

ingrese la descripción de la imagen aquí

¿Puede alguien decirme dónde me estoy equivocando, por favor? ¿Tengo que cambiar alguna configuración o necesito incluir archivos DLL adicionales para usar las características de C# 7?

Mirando esta respuesta, parece que todas las características de C# 7 deberían funcionar en .NET 4.5

over 4 years ago · Santiago Trujillo
1 Respostas
Responde à pergunta

0

Debe actualizar el paquete nuget llamado "Microsoft.Net.Compilers" a la última versión. Lo más probable es que tenga instalada la versión 1.3.2 en su proyecto, pero necesita la 2.0.1 para usar las funciones de C# 7. Alternativamente, puede eliminar este paquete (junto con los paquetes que dependen de él), entonces también funcionará, porque usará su compilador instalado, pero no recomiendo hacerlo.

Como dice la descripción de este paquete:

Paquete de compiladores .Net. Hacer referencia a este paquete hará que el proyecto se compile con la versión específica de los compiladores de C# y Visual Basic contenidos en el paquete, a diferencia de cualquier versión instalada en el sistema.

Es por eso que ahora usa el compilador C # 6 para usted.

over 4 years ago · Santiago Trujillo Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda