例如,使用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()
有没有替代方案?
答案 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中显示