【问题标题】:Substring compiles but code doesn't work [closed]子字符串编译但代码不起作用[关闭]
【发布时间】:2013-01-04 16:11:09
【问题描述】:

当我使用下面的代码时,它可以编译,但其余代码似乎不起作用。当我取出其中的 Substring 部分时,它确实如此。

-步骤

String theDate, theWeekDay;     
if (ToTime(Time[0]) == ToTime(0, 0, 0))         
{
   theDate=ToDay(Time[0]).ToString().Substring(0,3);
   theWeekDay=Time[0].DayOfWeek.ToString().Substring(4,8);
   DrawTextFixed("day",theWeekDay, TextPosition.BottomRight);
   DrawText("day"+Convert.ToString(ToDay(Time[0])),
   theWeekDay+" "+theDate,0, Low[0]-TickSize*20, Color.Blue);
}

【问题讨论】:

  • 那是你的完整代码吗?
  • theWeekDayTime 是什么?你在哪里声明和初始化?你到底想达到什么目的?
  • 更准确地定义“似乎不起作用”
  • 你有异常吗?
  • 重新编写新代码:ToTime() 和 ToDay() 来自哪里?签名?

标签: c# substring


【解决方案1】:

您没有提供足够的信息来解决您的问题,但如果您只是想以缩写格式获取星期几的名称,请改用:

theWeekDay = Time[0].ToString("ddd");

【讨论】:

  • 虽然这确实用两个而不是所需的三个字符来缩写它(顺便说一句,与System.Globalization.CultureInfo.CurrentCulture.DateTimeFormat.GetAbbreviatedDayName(Time[0].DayOfWeek) 相同。
  • @TimSchmelter,不应该。见msdn.microsoft.com/en-us/library/8tfzyc64.aspx
  • 我收到此错误:在柱 71 上为指标“Killzones3”调用“OnBarUpdate”方法时出错:格式字符串只能是“G”、“g”、“X”、“ x”、“F”、“f”、“D”或“d”。
  • @Brandon:嗯,也许德国不一样,我们只有两个。
  • @TimSchmelter,可能。文化格式可能会有所不同。还有 Rik,您需要(在您的问题中)指定 OnBarUpdate 和 Killzones3 是什么。
【解决方案2】:

您将不得不提供的不仅仅是这个 sn-p 代码。您通过索引器访问的时间对象是什么?您是否对此进行了调试以查看 Time[0] 是否真的有值?我的猜测是Time[0] 不会返回DayOfWeek 可以使用的值,因此Substring(0,3) 正在针对空字符串或null 值运行

【讨论】:

  • 我以错误的方式使用子字符串,我认为 Substring(4,8) 会占用 4 到 8 个字符,因此我收到了一个错误,因为我超出了字符串
【解决方案3】:

除非您省略了部分代码,否则您的分配不会发生在类定义或方法中。

【讨论】:

    猜你喜欢
    • 2012-03-13
    • 1970-01-01
    • 2013-10-11
    • 1970-01-01
    • 2017-07-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-02-04
    相关资源
    最近更新 更多