Puntos de conocimiento de C #: el argumento característico debe ser una expresión constante, tipo de expresión o expresión de creación de matriz del tipo de parámetro característico

Descripción:

       Por ejemplo, cuando estaba usando la función MenuItem de Unity, informé un error "El argumento de la función debe ser una expresión constante, tipo de expresión o expresión de creación de matriz del tipo de parámetro de función"

        

       

Después de varios posicionamientos, la razón es que mi cadena no está definida con const. Para las características, el parámetro actual debe ser un valor constante, y lo que defino es una variable; además, no hay readonly Declaración. Usado, se pueden ver las razones: Serie de conocimiento de C #: la diferencia entre readonly y const

public static string CustomEidorMenu = "CustomEidorMenu";
public static readonly string CustomEidorMenu = "CustomEidorMenu";

Después de la prueba, la siguiente línea de código no funciona. En C #, solo las constantes de cadena de concatenación de cadenas "+" se pueden determinar durante la compilación, y las otras son concatenación dinámica.

[MenuItem($"{EditorConfig.CustomEidorMenu}/window")]

 

Entonces la solución es la siguiente, compilada a través de

public const string CustomEidorMenu = "CustomEidorMenu";
[MenuItem(EditorConfig.CustomEidorMenu + "/window")]

 

Supongo que te gusta

Origin blog.csdn.net/qq1090504117/article/details/111582542
Recomendado
Clasificación