考慮下面的C#程序:Debug.Assert的似乎不是單聲道
using System;
using System.Diagnostics;
namespace Test
{
class MainClass
{
public static void Main (string[] args)
{
Debug.Assert(false);
Debug.Fail("fail!");
Console.WriteLine ("Hello World!");
}
}
}
編譯時使用此:
dmcs -debug -d:DEBUG Main.cs
,然後用運行它:
mono --debug Main.exe
斷言和失敗似乎被忽略。輸出只是:
Hello World!
我檢查了StackOverflow的其他相關問題,但我找不到解決方案。特別是在Mono - Debug.Assert does not work中給出的解決方案不起作用。 (更新:更新的解決方案確實有效,請參閱下面的評論。)
我在Ubuntu 11.10上使用Mono 2.10.5-1。
D'oh。我認爲我的答案按照接受的方式工作。我已經更新了答案,並且仔細檢查了這次是否有效。簡而言之:'單聲道'不帶有像微軟的.NET這樣的對話框;除非您設置跟蹤偵聽器,否則它什麼也不做。 – dtb
謝謝。使用「export MONO_TRACE_LISTENER = Console.Out」,斷言失敗被寫入控制檯。 –