C#の知識ポイント:特性引数は、定数式、式のタイプ、または特性パラメータータイプの配列作成式である必要があります

説明:

       たとえば、UnityのMenuItem機能を使用していたときに、「機能引数は、機能パラメータータイプの定数式、typeof式、または配列作成式である必要があります」というエラーを報告しました。

        

       

いくつかのポジショニングの後、理由は私の文字列がconstで定義されていないためです。特性については、実際のパラメーターは定数値である必要があり、私が定義するのは変数です。さらに、読み取り専用はありません。宣言。使用すると、理由がわかります。C#ナレッジシリーズ:読み取り専用と定数の違い

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

テスト後、次のコード行は機能しません。C#では、コンパイル時に「+」文字列連結文字列定数のみを決定でき、その他は動的連結です。

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

 

したがって、解決策は次のようになります。

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

 

おすすめ

転載: blog.csdn.net/qq1090504117/article/details/111582542