考虑以下 C# 程序:
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 不起作用 https://stackoverflow.com/questions/7479636/mono-debug-assert-does-not-work不起作用。 (更新:更新后的解决方案确实有效,请参阅下面的评论。)
我在 Ubuntu 11.10 上使用 Mono 2.10.5-1。
单声道上的 C# -http://ebsteblog.wordpress.com/2009/05/06/debugassert-and-mono/ http://ebsteblog.wordpress.com/2009/05/06/debugassert-and-mono/
文章摘录:
...如果您为应用程序创建一个 .config 文件并将assertuienabled 属性设置为 true,您将获得与 .NET 相同的对话框...文件 app.config:
<?xml version="1.0" encoding="UTF-8"?>
<configuration>
<system.diagnostics>
<assert assertuienabled="true" />
</system.diagnostics>
</configuration>
旧答案:如果您没有在命令行/编译选项上指定 -define DEBUG,则使用 C++ 注释。
用于调试添加
#define DEBUG
在代码的开头或
#define TRACE
为追踪。
请参阅此处的解决方案:http://lists.ximian.com/pipermail/mono-list/2006-December/033774.html http://lists.ximian.com/pipermail/mono-list/2006-December/033774.html
p.s:我用 C++ 尝试过,而不是 C#。这可能不适用于 C#。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)