gpt4 book ai didi

c# - 对为什么标签 .Tag 属性没有按照我认为应该的方式进行操作感到困惑

转载 作者:太空宇宙 更新时间:2023-11-03 18:43:05 25 4
gpt4 key购买 nike

我在 WinForms 应用程序中使用 C#。我正在尝试根据文件的日期设置标签的值。如果找不到文件,“File.GetLastWriteTime”方法将返回“12/31/1600”。如果没有,我希望标签显示“未找到”。当单步执行下面的代码时,lblSqlC.Tag 的值匹配“12/31/1600”。但是“If”语句发现它是错误的。

lblSqlC.Tag = File.GetLastWriteTime(@"c:\sql.exe").ToShortDateString();

if (lblSqlC.Tag == "12/31/1600")
{
lblSqlC.Text = "Not Found";
}
else
{
lblSqlC.Text = lblSqlC.Tag;
}

我错过了什么?谢谢。

最佳答案

如果您使用 == 运算符,则需要将字符串作为字符串进行比较。所以这个 block :

if (lblSqlC.Tag == "12/31/1600")
{
lblSqlC.Text = "Not Found";
}

应更改为:

if ((string)lblSqlC.Tag == "12/31/1600")
{
lblSqlC.Text = "Not Found";
}

或者:

if (lblSqlC.Tag != null && lblSqlC.Tag.Equals("12/31/1600"))
{
lblSqlC.Text = "Not Found";
}

否则,正如@dtb 提到的,它只是简单地使用在 object 上定义的默认 == 运算符并测试引用是否相等(它们可能不相等)与他们的值(value)观相反。

关于c# - 对为什么标签 .Tag 属性没有按照我认为应该的方式进行操作感到困惑,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6962676/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com