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

259
Visualizações
¿Por qué se compila el código específico de .NET 4.6 cuando se dirige a versiones anteriores del marco?

Tengo un proyecto que apunta a versiones anteriores del marco .NET (.NET 4.5.2). Instalé Visual Studio 2015 (y, por lo tanto, .NET 4.6 en mi máquina). Me di cuenta de que si uso las características del lenguaje C# lanzadas en .NET 4.6/C# 6, aún se compila. Si el marco de destino de mi proyecto es <.NET 4.6, ¿no debería compilar esto?

 public string MyExpressionBodyProperty => "1"; //auto properties are new in C# 6 public string MyAutoProperty { get; } = "1"; private static void MethodThatUsesNameOf(string filename) { if (filename == null) { //nameof was released in C# 6 throw new ArgumentException("The file does not exist.", nameof(filename)); } }

¿Cómo puedo asegurarme de que solo estoy usando funciones de lenguaje .NET que funcionan con la versión del marco de trabajo a la que me dirijo?

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

0

La versión de .NET Framework y la versión del lenguaje C# son cosas diferentes. Las características del lenguaje C# 6

 public string MyAutoProperty { get; } = "1"; nameof(filename)

puede ser compilado por VS 2015 en un código que apunta a marcos anteriores.

¿Cómo puedo asegurarme de que solo estoy usando funciones de lenguaje .NET que funcionan con la versión del marco de trabajo a la que me dirijo?

Si intenta usar una característica de .NET 4.6 Framework, obtendrá un error de compilación apropiado si tiene como objetivo un marco anterior.

¿Podría implementar este código en una máquina que no tuviera .NET 4.6?

Sí, lo harías. Siempre que la máquina de implementación tenga un marco compatible con el objetivo en VS2015.

over 4 years ago · Santiago Trujillo Relatório

0

Hay funciones de C# 6 y funciones de .NET 4.6.

nameof es una función de C# 6, por lo que solo necesita ejecutarse en un compilador más nuevo, pero aún puede usar el marco .NET anterior.

Un ejemplo de una característica que requiere .NET 4.6 es el siguiente:

 public void Foo(IReadOnlyCollection<string> input) { } public void Main(string[] args) { Foo(new Stack<string>()); }

En .NET 4.6 Stack implementa IReadOnlyCollection pero en versiones anteriores no. El código anterior no se compilaría si seleccionó .NET 4.5.2 como su plataforma de destino.

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