奇怪的写行(DateTime结果)
本文关键字:DateTime 结果 | 更新日期: 2023-09-27 18:20:24
这里有一个小问题,希望你们能帮我解决。
Console.Write("{0} {1} {2} {3} {4} " + customerdetails[i].CustomerNo,
customerdetails[i].surname,
customerdetails[i].forname,
customerdetails[i].street,
customerdetails[i].town,
customerdetails[i].DOB.ToString("dd/MM/yyyy"));
这个小东西实际上可以正常工作,并正确地生成所有内容,但在它弹出一些奇怪的东西之后,看起来有点像二进制代码。例如:
100姓氏123街镇11/11/1111//正确
01-01-0001 0
01-01-0001 0
01-01-0001 0 //What is this? How to get rid of it
01-01-0001 0
很明显,这只是代码的一部分,我认为这里有些地方有问题,但如果你需要更多的代码,就这么说吧。
最后的0
是CustomerNo
,因为您的格式字符串是:
"{0} {1} {2} {3} {4} " + customerdetails[i].CustomerNo
即:
"{0} {1} {2} {3} {4} 0"
在这一点上,您取代了位置{4}
的日期,但最后的0仍然存在。
要消除它,请将+
替换为,
,并将格式字符串替换为:
"{0} {1} {2} {3} {4} {5}"
现在CustomerNo
将处于第一位置。
要替换默认DateTime
值,请执行以下操作:
string dob;
if (customerdetails[i].DOB == DateTime.MinValue)
{
dob = "(unknown)"; // or whatever
}
else
{
dob = customerdetails[i].DOB.ToString("dd/MM/yyyy");
}
现在使用dob
作为Console.Write()
的参数。
我相信您创建了一个customerdetails
实例数组,但只初始化了第一个索引实例。假设您的代码:
Console.Write("{0} {1} {2} {3} {4} " + customerdetails[i].CustomerNo,
customerdetails[i].surname,
customerdetails[i].forname,
customerdetails[i].street,
customerdetails[i].town,
customerdetails[i].DOB.ToString("dd/MM/yyyy"));
处于for循环中,因此您可以获得customerdetails[0]
的值,列表中的其余部分仅显示其默认值。
DateTime 的01-01-0001
整数的0
字符串的string.Empty
要清除不需要的值,只需从数组列表中删除那些未初始化的实例即可。
有没有办法设置[日期时间],这样它就不会显示默认值?只有我输入的?
默认的DateTime和代码设置的DateTime没有区别。如果要表示"无日期",请使用可为null的DateTime,表示为DateTime?
。