我有這個問題:
blTimer.Text = (TimeSpan.FromMinutes(60) - (DateTime.Now - startTime))
.ToString("hh\\:mm\\:ss");
這一點:
ToString("hh\\:mm\\:ss");
Visual Studio 向我顯示了標題中的錯誤。我該如何解決?
uj5u.com熱心網友回復:
將來,您應該始終將完整、準確的錯誤訊息復制/粘貼到您的問題正文中!
在這種情況下,請考慮更改您的格式字串,例如.ToString("hh:mm:ss").
反斜杠(“”)通常表示“轉義序列”:https : //docs.microsoft.com/en-us/cpp/c-language/escape-sequences?view=msvc-160
另請參閱如何在字串中寫入反斜杠 ()?
附錄:
有一些事情可能會出錯,包括:a) 格式字串中的錯誤反斜杠,b) 將格式字串應用于錯誤的資料型別,c) 其他?
由于聽起來您已經修復了反斜杠,因此我猜測當前的問題可能是您在錯誤的資料型別(不是System.DateTime 物件的型別)上呼叫 .ToString( ) 。
建議:
- 如有疑問,一種強大的故障排除技術是將您的“復雜運算式”拆分為“單獨的陳述句”。
- 另一個強大的技術是撰寫一個“簡短的、自包含的、正確的(可編譯的)示例”——一個SSCCE
下面是一個例子:
using System;
/*
* SAMPLE OUTPUT:
* endTime: 12:00:00
*/
namespace ConsoleApp1
{
class Program
{
static void Main(string[] args)
{
DateTime startTime = DateTime.Parse("10/18/21 11:00:00");
DateTime endTime = startTime TimeSpan.FromMinutes(60);
string s = endTime.ToString("hh:mm:ss");
Console.WriteLine("endTime: {0}", s);
}
}
}
我希望這有助于為您指明正確的方向......
uj5u.com熱心網友回復:
已解決:D
問題是我創建專案時的框架版本我沒有看到 .net 的版本所以這就是問題所在!謝謝大家幫助我!
@paulsm4 - 是的。謝謝,該代碼對我在其他一些專案中很有用,謝謝!
uj5u.com熱心網友回復:
如果startTime是型別DateTime,則沒有任何問題。TimeSpan有一個多載ToString(string format)并且您的格式有效。在 PowerShell 中測驗。
uj5u.com熱心網友回復:
這是代碼:
timer.Tick = (obj, args) =>
lblTimer.Text =
(TimeSpan.FromMinutes(60) - (DateTime.Now - startTime)).ToString("hh/mm/ss"); //here is the problem on .ToString
timer.Enabled = true;
tmr_hide.Start();
tmr_show.Start();
tmr_if.Start();
tmr_himmi.Start();
tmr_clock.Start();
轉載請註明出處,本文鏈接:https://www.uj5u.com/qianduan/325953.html
