Saltar al contenido

Cómo resolver esta advertencia del compilador “El nombre del recurso no es un identificador válido”

Contamos con tu apoyo para extender nuestras reseñas referente a las ciencias informáticas.

Solución:

Según el enlace que ha publicado en la pregunta, creo que probablemente esté preguntando sobre strongly typed resource generation – eso significa que Visual Studio generará un archivo de recursos que le permitirá acceder a los recursos a través de propiedades escritas, por ejemplo

string fileName = Resources.FileName;
bool someSetting = Resources.AllowDelete;
byte[] binaryResource = Resources.SomeFile;

a diferencia de los recursos sin tipo en los que tiene que emitir el valor de retorno usted mismo porque devuelve el tipo System.Object en lugar de un tipo específico.

string fileName = (string)Resources["FileName"];
bool someSetting = (bool)Resources["AllowDelete"];
byte[] binaryResource = (byte[])Resources["SomeFile"]

Fuertemente tipado significa que una variable, campo o propiedad es de un tipo específico en lugar de solo Object.

public class User

    public String FirstName  get; set;  // Strongly typed
    public Object LastName  get; set;  // Weakly typed

Si usa recursos fuertemente tipados, el código se genera con propiedades fuertemente tipadas para todos sus recursos. En este caso, el nombre del recurso se utiliza como nombre de propiedad, por lo que debe ser un nombre de propiedad de C# válido. tu ejemplo MB_ArchiveRestore.cs_11 contiene un punto y, en consecuencia, no es un nombre de propiedad válido. El generador de código reemplazará el punto con un guión bajo para que el nombre sea válido y le dará la advertencia descrita para informarle al respecto.

El problema se produce porque . no es un carácter válido en los identificadores.

¿Qué significa exactamente fuertemente tipado?

Aunque no es tan relevante para esta pregunta en particular, “fuertemente tipado” significa que un objeto tiene una noción definida de tipo. Por ejemplo, no puedes hacer int i = "5"; en C#, porque “5” es un string y i es un número entero, sus tipos son incompatibles entre sí.

Esto contrasta con los lenguajes “débilmente tipificados”, donde la noción de “tipo” no es tan fuerte. Un lenguaje débilmente tipificado podría decidir que para algo como i = 5; j = "6"; print (i + j);la respuesta correcta es 11.

Sección de Reseñas y Valoraciones

Si te gustó nuestro trabajo, eres capaz de dejar un escrito acerca de qué le añadirías a esta sección.

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *