请问如何定义const string[] strTest?

Viskag 2009-06-25 09:55:54
pubic const string[] strTest = new string[]{"礼拜1","礼拜2","礼拜3","礼拜4","礼拜5","礼拜6","礼拜tian"};
报错了The expression being assigned to `main.strTest must be constant
应该定义?不要告诉我用什么readonly,因为我后面要用到
switch(abc)
{
case strTest[0] : xxxxx;break;
...
...

case后必须是const的
谢谢!
...全文
545 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
Viskag 2009-06-25
  • 打赏
  • 举报
回复
[Quote=引用 7 楼 ld1201 的回复:]
C# codepublic enum Day { Sun, Mon, Tue, Wed, Thu, Fri, Sat }; //枚举星期
protected void Page_Load(object sender, EventArgs e)
{
Day IsDay = Day.Mon; //得到值
switch (IsDay)
{
case Day.Sun:
..... //代码
break;
case Day.Mon:
..... //代码
b…
[/Quote]
我不好我不好,这个方案不行,因为每次开始运行程序,都会读取一个外部数据库文件,得到一串(数量和内容都可能会变的)字符串,比如这次得到了string[] config = {“name1”,“name2”,“name3”},然后我要核对程序中期产生的一个string abc做判断
switch(abc)
{
case config[0]:xxx;break;
...
发现这样写不行,除非无奈,我不想写成
if(abc==config[0])
xxx;
else if(abc==config[1])
yyy;
....
else if(abc==config[100])
zzz;
Viskag 2009-06-25
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 Viskag 的回复:]
引用 1 楼 ljhcy99 的回复:
为什么不用枚举阿,枚举很方便


请问怎么用啊?我没用过枚举。。。我希望就是从某个外部文件读取一串字符串(固定不变的),然后有一个string abc我想放到在switch里,根据abc和字符串的比较做某个操作
switch(abc)
{
case 字符串0:xxxx;break;
case 字符串1:yyyy;break;
....
[/Quote]
我说错了,每次运行从外部配置文件读取的字符串可能会不一样,不过对于在每次运行的时间内是不变的
ld1201 2009-06-25
  • 打赏
  • 举报
回复
public enum Day { Sun, Mon, Tue, Wed, Thu, Fri, Sat };  //枚举星期
protected void Page_Load(object sender, EventArgs e)
{
Day IsDay = Day.Mon; //得到值
switch (IsDay)
{
case Day.Sun:
..... //代码
break;
case Day.Mon:
..... //代码
break;
case Day.Tue:
..... //代码
break;
case Day.Wed:
..... //代码
break;
default:
..... //代码
break;
}
}


这样再不会就完了
Viskag 2009-06-25
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 ljhcy99 的回复:]
为什么不用枚举阿,枚举很方便
[/Quote]
请问怎么用啊?我没用过枚举。。。我希望就是从某个外部文件读取一串字符串(固定不变的),然后有一个string abc我想放到在switch里,根据abc和字符串的比较做某个操作
switch(abc)
{
case 字符串0:xxxx;break;
case 字符串1:yyyy;break;
....
shadow_2006 2009-06-25
  • 打赏
  • 举报
回复
引用类型是不能被声明为const常量的,不过有一个例外:string。该引用类型const常量的值可以有两种情况,string或null。其实,string虽然是引用类型,但是.NET却对它特别处理,这种处理叫做字符串恒定性(immutable),使得string的值具有只读特性。
zhaoweiting0609 2009-06-25
  • 打赏
  • 举报
回复
枚举可以用
SQL77 2009-06-25
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 whslovexyp 的回复:]
the only possible values for constants of reference types are string and null.
数组做为引用类型,恐怕只能是null,建议用楼上的枚举
[/Quote]
正是!试了一下
whslovexyp 2009-06-25
  • 打赏
  • 举报
回复
the only possible values for constants of reference types are string and null.
数组做为引用类型,恐怕只能是null,建议用楼上的枚举
ljhcy99 2009-06-25
  • 打赏
  • 举报
回复
为什么不用枚举阿,枚举很方便
不使用水晶报表,实现列表式的打印。 刚学C# 1个月时写的,如果污染了视听,请见谅。 struct PageProperty { public int PageLeft; public int PageTop; public int PageBottom; public int PageWidth; public int PageHeight; public int RowSpace; public int ColSpace; public int AllVisibleColSpace; public int AllColWidth; public int AllVisibleColWidth; public int AllRowHeight; public int TitleH; public int SubTitleH; public int FooterH; public int[] ColWidth; public int VisibleColWidth; public int PageTextHeight; public int PageTextWidth; } struct TRect { public int Left; public int Top; public int Right; public int Bottom; } class PanelImage : Panel { protected Panel panelShadow = null; public PictureBox ImgData = null; public PanelImage() { this.BackColor = Color.Gray; this.DoubleBuffered = true; ImgData = new PictureBox(); ImgData.Parent = this; ImgData.BackColor = Color.White; panelShadow = new Panel(); panelShadow.Parent = this; panelShadow.BackColor = Color.Black; ResizeControl(); } void ResizeControl() { panelShadow.Left = 8; panelShadow.Top = 8; panelShadow.Width = this.Width - 12; panelShadow.Height = this.Height - 12; ImgData.Left = 4; ImgData.Top = 4; ImgData.Width = this.Width - 12; ImgData.Height = this.Height - 12; } protected override void OnResize(EventArgs eventargs) { ResizeControl(); base.OnResize(eventargs); } protected override void Dispose(bool disposing) { panelShadow.Dispose(); ImgData.Dispose(); base.Dispose(disposing); } } public partial class PrintGrid { [DllImport("gdi32.dll", EntryPoint = "GetDeviceCaps", CallingConvention = CallingConvention.StdCall)] public static extern int GetDeviceCaps(int Handle, int nIndex); private float _leftMargin = 0; private float _topMargin = 0; private float _rightMargin = 0; private float _bottomMargin = 0; const short HORZSIZE = 4; const short VERTSIZE = 6; const short HORZRES = 8; const short VERTRES = 10; const short PHYSICALOFFSETX = 112; const short PHYSICALOFFSETY = 113; int ixLogPixPerInch; int iyLogPixPerInch; int xLogPixPerInch; int yLogPixPerInch; int FPageIndex; int FPageCount; string FLeftPageFooter; string FRightPageFooter; string FTitle; Font FFont; Font FTitleFont; Font FTextFont; Font FFooterFont; Font FSubTitleFont; int FSubTitleOff; int FLeftPageFooterOff; int FPrintCount; string FSubTitle; bool FHLine; bool FVLine; int FPageTop; int FPageLeft; int FPageRight; int FPageBottom; int FToPage; int FFromPage; bool FPrintPageCount; string FRightSubTitle; bool FExistPrinter; bool FCenterShow; Color FHeaderColor; bool FUseHeaderColor; private int iDX; //水平缩放比例 private int iDY; //垂直缩放比例 private int ColCount; //总列数 private int RowCount; //总行数 private int[] ColWidth; //记录每一列的宽度 private int AllColWidth; //所有列的宽度 private int AllVisibleColWidth; //所有可视列的宽度 private int RowSpace; //行间距 private int ColSpace; //所有可视列间距 private int AllVisibleColSpace; //所有行的间距 private int AllColSpace; //所有列的间距 private int AllRowSpace; //所有行的间距 private int RowsOfPage; //每页打的行数 private int PageWidth; //页的宽度 private int PageHeight; //页的高度 private int PageTextHeight; //页正文高度 private int PageTextWidth; //页正文宽度 private int TextTop; //正文上边距 private int TextLeft; //正文左边距 private int TitleH; //标题高度 private int SubTitleH; //子标题高度 private int FooterH; //页脚高度 private int FooterTop; //页脚顶部 private int TextH; //正文高度 private int VisibleColWidth; private int DX; private int DY; private string StrTest; private ListView ListViewData = null; //数据 private PrintDocument PD = null;

110,534

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧