C # -Wissenspunkte: Das charakteristische Argument muss ein konstanter Ausdruck, ein Ausdruckstyp oder ein Arrayerstellungsausdruck des charakteristischen Parametertyps sein

Beschreibung:

       Wenn ich beispielsweise die MenuItem-Funktion von Unity verwendet habe, habe ich einen Fehler gemeldet: "Das Feature-Argument muss ein konstanter Ausdruck, ein Ausdruckstyp oder ein Arrayerstellungsausdruck des Feature-Parametertyps sein."

        

       

Nach mehreren Positionierungen liegt der Grund darin, dass meine Zeichenfolge nicht mit const definiert ist. Für Merkmale muss der tatsächliche Parameter ein konstanter Wert sein, und was ich definiere, ist eine Variable. Außerdem gibt es keine schreibgeschützte Deklaration. Verwendet werden die Gründe gesehen: C # Wissensreihe: der Unterschied zwischen readonly und const

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

Nach dem Testen funktioniert die folgende Codezeile nicht. In C # können während der Kompilierung nur "+" Zeichenfolgenverkettungszeichenfolgenkonstanten bestimmt werden, während die anderen dynamische Verkettungen sind.

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

 

Die Lösung ist also wie folgt zusammengestellt

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

 

Ich denke du magst

Origin blog.csdn.net/qq1090504117/article/details/111582542
Empfohlen
Rangfolge