常量字符串替代使用辅助类

时间:2012-09-28 02:29:44

标签: c# asp.net string class

例如,使用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;       
}
  • 已编辑:

这只是一个例子,如果放在另一个类中,常量字符串将不起作用 这不是我想要纠正的功能/方法,所以它会起作用。 谢谢你的时间,我正在努力建立我的方法,我的方法......

这个 可以很好地放在项目的当前或同一个类中,但是当所有变量都存储在这个类之外时,而不是简单地只实例化一次类和方法一次:

fullClassName shrtNm = New fullClassName();

然后你想用

来称呼它

shrtNm.MethodName();

如果不通过using声明包含命名空间,你需要特别去'长途跋涉'

你必须把它称为:

string strnm = MyNameOfNameSpace.fullClassName.ConstantntStrName;

而不是:

string strnm = shrtNm.ConstantStrName;

是否可以使用任何能够以简单方式表示IntelliSense内部字符串值的类型?

我尝试过使用

public enum Elavation
{
    lvl1,
    lvl2,
    lvl3
}

但是你需要在长示例中加上.ToString()

来声明它

有没有替代方案?

2 个答案:

答案 0 :(得分:2)

而不是将变量声明为“常量”而不是将您称为'只读'吗? 这将使您只能简单地实例化该类一次:

fullClassName shrtNm = New FullClassName();

然后你想用

来称呼它
shrtNm.<VariableName>;

从您枚举的用例中猜测,我怀疑使用const和readonly之间的区别应该是重要的......

答案 1 :(得分:0)

据我所知(只因为对我来说很重要) 我在codeProjec page中找到了一个关于使用字符串和String-Enumerations

的示例

引导我使用那个方法,然后把我的calss变成静态类

 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中显示