こんにちは私はそのような静的列挙型を宣言しようとしています:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Mvc;
namespace Lds.CM.MyApp.Controllers
{
public class MenuBarsController : Controller
{
// Menu Bar enums
public static enum ProfileMenuBarTab { MainProfile, Edit, photoGallery }
public ActionResult cpTopMenuBar(string tabSelected)
{
...
「しかし、次のエラーが表示されます。「修飾子 'static'はこのアイテムに対して有効ではありません。」それは簡単なことですが、問題が見えないようです。
列挙型は変数ではなく型です。したがって、定義ごとに「静的」であるため、キーワードは必要ありません。
public enum ProfileMenuBarTab { MainProfile, Edit, PhotoGallery }
static
を取り出します。
列挙型はメンバーではなく型です。静的列挙型または非静的列挙型の概念はありません。
あなたのタイプの静的fieldを作成しようとしているかもしれませんが、それはタイプ宣言とは何の関係もありません。
(おそらく静的フィールドを作成するべきではありませんが)
また、 public
ネストされた型を作成しないでください 。
静的として定義する必要はありません。列挙型がコンパイルされると、C#コンパイラは各シンボルをtypeの定数フィールドに変換します。たとえば、コンパイラは、先ほど示したColor列挙を、次のようなコードを記述したかのように扱います。
internal struct Color : System.Enum {
// Below are public constants defining Color's symbols and values
public const Color White = (Color) 0;
public const Color Red = (Color) 1;
public const Color Green = (Color) 2;
public const Color Blue = (Color) 3;
public const Color Orange = (Color) 4;
// Below is a public instance field containing a Color variable's value
// You cannot write code that references this instance field directly
public Int32 value__;
}
列挙型は値ではなく型です。修飾子static
はそこではあまり意味がありません。
列挙型宣言を静的にしようとしています。つまり、ProfileMenuBarTab
型のフィールドです。クラス内のクラス(または何でも)を宣言するには、静的を残します。