我正在测试我的run()函数,以确保它具有在方法结尾填充所有正确的东西。我从我们的数据库,两个字符串和两个IEnumerable(字符串)填充4个字段。这个想法是把所有的人都从数据库中打印出来。Console.Write是否会失败?
当我只打印字符串字段,一切工作正常。但是,当我尝试添加Enumerables时,也没有任何打印。我还打印了一个柜台,所以我知道该程序仍在运行并正在运行。由于空间或其他原因,控制台是否决定不打印任何内容?
下面是做它的代码:
int i = 0;
foreach (Contact contact in Contact.LoadWithPredicate(getAll))
{
-------other code to populate fields---------
i ++;
Console.WriteLine(i);
//Turn the Enumerables into strings for printing
string firstEnumAsString = String.Join(", ", firstEnumerable.ToArray());
string secondEnumAsString = String.Join(", ", secondEnumerable.ToArray());
Console.WriteLine("Email: " + firstString+ ", correspondance: " + secondString+ ", PAM addresses: " + firstEnumAsString+ ", famousPeople: " + secondEnumAsString);
}
所以,我的输出,当我运行上面的代码,我得到这样的输出:
1
2
Email: [email protected], correspondance: John, PAM addresses: [email protected], famousPeople: foo, bar, foo
3
4
etc
问题是,只有两个总数(〜425)中的人出现,其余的线只是数字。我不应该至少得到字符串“电子邮件”和“通信”吗?看来控制台只是决定不做任何事情。我知道代码必须达到它,因为它在打电话给Console.WriteLine()之前打印出整数。
在另一方面,每当我只是要求要打印两个字符串字段,控制台显示所有用户425这两个领域,其相应的整数之后。有人知道这里发生了什么? TIA
Console.Write可能会失败,如果任何正在监听它失败。你有没有附加任何自定义侦听器,或者你只是从命令行运行它? –
没时间去测试它,但是在某些运行时如果你用null连接,最终的结果是null。你正在加入的东西是否为空? – MatthewMartin
在你的'Console.WriteLine'行设置一个断点,并检查所有变量是否都有值? – Shaharyar