0

で作業するときswitch case、例えば、私は使用することができます

const string FirstFloor = "lvl1", SecondFloor = "lvl2", ThirdFloor = "lvl3"; 

string ElavaetTo= "lvl1";

switch(ElavaetTo)
{
  case FirstFloor:
  Response.Redirect(FirstFloor + "Page.aspx")
  break;

  case SecondFloor:
  Response.Redirect(SecondFloor + "Page.aspx")
  break;

  case ThirdFloor:
  Response.Redirect(ThirdFloor + "Page.aspx")
  break;       
}
  • 編集済み:

これは、定数文字列が別のクラスに配置された場合に機能しない例にすぎません。これは、修正しようとしている関数/メソッドではないため、機能します。あなたの時間をありがとう、私は私の方法、私のアプローチをベースにしようとしています...

これ、プロジェクトの現在のクラスまたは同じクラスに配置すると正常に機能しますが、クラスとメソッドを1回だけインスタンス化するのではなく、すべての変数がこのクラスの外部に格納されている場合:

fullClassName shrtNm = New fullClassName();

それからあなたはそれをと同じように呼びたいです

shrtNm.MethodName();

usingNamespace viaステートメントを含めない場合は、特に「長い道のり」を進む必要があります。

そして、あなたはそれを次のように呼ぶ必要があります:

string strnm = MyNameOfNameSpace.fullClassName.ConstantntStrName;

それ以外の:

string strnm = shrtNm.ConstantStrName;

IntelliSense内の文字列値を簡単に表すタイプを使用する代わりの方法はありますか?

使ってみました

public enum Elavation
{
    lvl1,
    lvl2,
    lvl3
}

しかし、その後、長い例のようにそれを宣言する必要があります.ToString()

代替手段はありますか?

4

2 に答える 2

2

変数を「const」として宣言する代わりに、「読み取り専用」として宣言するのに疲れていますか?これにより、クラスを1回だけインスタンス化できます。

fullClassName shrtNm = New FullClassName();

それからあなたはそれをと同じように呼びたいです

shrtNm.<VariableName>;

あなたが列挙したユースケースから推測すると、constとreadonlyの使用の違いが重要であるとは思えません...

于 2012-09-28T02:43:40.360 に答える
0

私が得ることができる限り(私がアプローチを追加することが重要だったという理由だけで)私は文字列と文字列列挙の使用についてのcodeProjecページで例を見つけました

それは私がそのアプローチを使用するように導き、それから私のcalsを静的クラスに変えます

 public static class Qs
    {
        public sealed class Act
        {
            //private Act();
            public const string edit = "edit", add = "add", remove = "remove", replace = "replace";

        }
       public sealed class State
        {
           public const string addnewTableRow = "addnewTableRow", cancelInsert = "cancelInsert", loadpagefromlink="loadpagefromlink";
        }
       public sealed class Params
        {
             public const string state = "state";
             public const string custID = "custID";
             public const string recordID = "recordID";
        }

}

sealed class親のclassName.Itsnameを介してアクセスすることを使用します。例:

Qs.Act.edit

編集がIntelliSenseに表示されるように

于 2012-09-29T18:36:19.940 に答える