Debug.Assert 方法

定义

检查条件 ;如果条件为 false,则输出消息,并显示一个消息框,其中显示调用堆栈。

重载

Assert(Boolean)

检查条件 ;如果条件为 false,则显示一个消息框,其中显示调用堆栈。

Assert(Boolean, Debug+AssertInterpolatedStringHandler)

检查条件;如果条件为 false,则输出指定消息并显示指示调用堆栈的消息框。

Assert(Boolean, String)

检查条件;如果条件为 false,则输出指定消息并显示指示调用堆栈的消息框。

Assert(Boolean, Debug+AssertInterpolatedStringHandler, Debug+AssertInterpolatedStringHandler)

检查条件;如果条件为 false,则输出指定消息并显示指示调用堆栈的消息框。

Assert(Boolean, String, String)

检查条件 ;如果条件为 false,则输出两条指定消息,并显示一个消息框,其中显示调用堆栈。

Assert(Boolean, String, String, Object[])

检查条件;如果条件为 false,则输出两条指定消息(简单消息和格式化消息),并显示一个消息框,其中会显示调用堆栈。

Assert(Boolean)

检查条件 ;如果条件为 false,则显示一个消息框,其中显示调用堆栈。

public:
 static void Assert(bool condition);
[System.Diagnostics.Conditional("DEBUG")]
public static void Assert (bool condition);
[<System.Diagnostics.Conditional("DEBUG")>]
static member Assert : bool -> unit
Public Shared Sub Assert (condition As Boolean)

参数

condition
Boolean

要计算的条件表达式。 如果条件为 true,则不会发送失败消息,也不显示消息框。

属性

示例

以下示例为数组创建索引,执行一些操作来设置索引的值,然后调用 Assert 以确认索引值有效。 如果无效, Assert 则输出调用堆栈。

// Create a local value.
int index;

// Perform some action that sets the local value.
index = -40;

// Test that the local value is valid. 
#if defined(DEBUG)
Debug::Assert( index > -1 );
#endif
// Create an index for an array.
int index;

// Perform some action that sets the index.
index = -40;

// Test that the index value is valid.
Debug.Assert(index > -1);
' Create an index for an array.
Dim index As Integer

' Perform some action that sets the index.
index = -40

' Test that the index value is valid. 
Debug.Assert((index > - 1))

注解

默认情况下,该方法 Debug.Assert 仅适用于调试生成。 Trace.Assert如果要在发布版本中执行断言,请使用该方法。 有关详细信息,请参阅托管代码中的断言

通常,该方法 Assert(Boolean) 用于在程序开发期间识别逻辑错误。 Assert 计算条件。 如果结果是 false,它将失败消息发送到 Listeners 集合。 可以通过向集合添加一个或从Listeners集合中删除一个TraceListener来自定义此行为。

应用程序在用户界面模式下运行时,会显示一个消息框,其中显示了包含文件和行号的调用堆栈。 消息框包含三个按钮: 中止重试忽略。 单击 “中止 ”按钮将终止应用程序。 如果应用程序在调试器中运行,则单击 “重试 ”会将你发送到调试器中的代码,或者提供打开调试器(如果不是)。 单击 “忽略 ”继续执行代码中的下一条指令。

备注

Windows 8.x 应用不支持模式对话框,因此它们在用户界面模式和非用户界面模式下的行为相同。 消息在调试模式下写入活动跟踪侦听器,或者未在发布模式下写入任何消息。

备注

消息框的显示取决于是否存在 DefaultTraceListenerDefaultTraceListener如果未在集合中Listeners,则不显示消息框。 DefaultTraceListener可以通过对属性 () System.Diagnostics.Trace.Listeners.Clear() 调用Clear方法Listeners来删除该方法。 对于.NET Framework应用,还可以在应用的配置文件中使用<clear>元素<remove>元素

对于.NET Framework应用,可以更改与应用程序名称相对应的配置文件中的行为DefaultTraceListener。 在此文件中,可以启用或禁用断言消息框或设置 DefaultTraceListener.LogFileName 属性。 配置文件的格式应如下所示:

<configuration>
  <system.diagnostics>
    <assert assertuienabled="true" logfilename="c:\\myFile.log" />
  </system.diagnostics>
</configuration>

另请参阅

适用于

Assert(Boolean, Debug+AssertInterpolatedStringHandler)

检查条件;如果条件为 false,则输出指定消息并显示指示调用堆栈的消息框。

public:
 static void Assert(bool condition, System::Diagnostics::Debug::AssertInterpolatedStringHandler % message);
[System.Diagnostics.Conditional("DEBUG")]
public static void Assert (bool condition, ref System.Diagnostics.Debug.AssertInterpolatedStringHandler message);
[<System.Diagnostics.Conditional("DEBUG")>]
static member Assert : bool * AssertInterpolatedStringHandler -> unit
Public Shared Sub Assert (condition As Boolean, ByRef message As Debug.AssertInterpolatedStringHandler)

参数

condition
Boolean

要计算的条件表达式。 如果条件为 true,则不会发送指定消息,也不显示消息框。

message
Debug.AssertInterpolatedStringHandler

要发送到 Listeners 集合的消息。

属性

注解

.NET 6 中引入了此重载以提高性能。 与采用 String 参数的重载相比,此重载仅在需要消息时计算任何内插字符串格式项。

默认情况下,该方法 Debug.Assert 仅适用于调试生成。 Trace.Assert如果要在发布版本中执行断言,请使用该方法。 有关详细信息,请参阅托管代码中的断言

通常,该方法 Assert 用于在程序开发期间识别逻辑错误。 Assert 计算条件。 如果结果是 false,它将指定的诊断消息发送到 Listeners 集合。 可以通过向集合添加一个或从Listeners集合中删除一个TraceListener来自定义此行为。

应用程序在用户界面模式下运行时,会显示一个消息框,其中显示了包含文件和行号的调用堆栈。 消息框包含三个按钮: 中止重试忽略。 单击 “中止 ”按钮将终止应用程序。 如果应用程序在调试器中运行,则单击 “重试 ”会将你发送到调试器中的代码,或者提供打开调试器(如果不是)。 单击 “忽略 ”继续执行代码中的下一条指令。

备注

消息框的显示取决于是否存在 DefaultTraceListenerDefaultTraceListener如果未在集合中Listeners,则不显示消息框。 DefaultTraceListener可以通过对属性 () System.Diagnostics.Trace.Listeners.Clear() 调用Clear方法Listeners来删除该方法。 对于.NET Framework应用,还可以在应用的配置文件中使用<clear>元素<remove>元素

对于.NET Framework应用,可以更改与应用程序名称相对应的配置文件中的行为DefaultTraceListener。 在此文件中,可以启用或禁用断言消息框或设置 DefaultTraceListener.LogFileName 属性。 配置文件的格式应如下所示:

<configuration>
  <system.diagnostics>
    <assert assertuienabled="true" logfilename="c:\\myFile.log" />
  </system.diagnostics>
</configuration>

另请参阅

适用于

Assert(Boolean, String)

检查条件;如果条件为 false,则输出指定消息并显示指示调用堆栈的消息框。

public:
 static void Assert(bool condition, System::String ^ message);
[System.Diagnostics.Conditional("DEBUG")]
public static void Assert (bool condition, string message);
[System.Diagnostics.Conditional("DEBUG")]
public static void Assert (bool condition, string? message);
[<System.Diagnostics.Conditional("DEBUG")>]
static member Assert : bool * string -> unit
Public Shared Sub Assert (condition As Boolean, message As String)

参数

condition
Boolean

要计算的条件表达式。 如果条件为 true,则不会发送指定消息,也不显示消息框。

message
String

要发送到 Listeners 集合的消息。

属性

示例

以下示例检查参数是否 type 有效。 null如果是typeAssert则输出消息。

void MyMethod( Object^ obj, Type^ type )
{
   #if defined(DEBUG)
   Debug::Assert( type != nullptr, "Type paramater is null" );
   #endif
}
public static void MyMethod(Type type, Type baseType)
{
    Debug.Assert(type != null, "Type parameter is null");

    // Perform some processing.
}
Public Shared Sub MyMethod(type As Type, baseType As Type)
    Debug.Assert(Not (type Is Nothing), "Type parameter is null")
End Sub

注解

默认情况下,该方法 Debug.Assert 仅适用于调试生成。 Trace.Assert如果要在发布版本中执行断言,请使用该方法。 有关详细信息,请参阅托管代码中的断言

通常,该方法 Assert 用于在程序开发期间识别逻辑错误。 Assert 计算条件。 如果结果是 false,它将指定的诊断消息发送到 Listeners 集合。 可以通过向集合添加一个或从Listeners集合中删除一个TraceListener来自定义此行为。

应用程序在用户界面模式下运行时,会显示一个消息框,其中显示了包含文件和行号的调用堆栈。 消息框包含三个按钮: 中止重试忽略。 单击 “中止 ”按钮将终止应用程序。 如果应用程序在调试器中运行,则单击 “重试 ”会将你发送到调试器中的代码,或者提供打开调试器(如果不是)。 单击 “忽略 ”继续执行代码中的下一条指令。

备注

消息框的显示取决于是否存在 DefaultTraceListenerDefaultTraceListener如果未在集合中Listeners,则不显示消息框。 DefaultTraceListener可以通过对属性 () System.Diagnostics.Trace.Listeners.Clear() 调用Clear方法Listeners来删除该方法。 对于.NET Framework应用,还可以在应用的配置文件中使用<clear>元素<remove>元素

对于.NET Framework应用,可以更改与应用程序名称相对应的配置文件中的行为DefaultTraceListener。 在此文件中,可以启用或禁用断言消息框或设置 DefaultTraceListener.LogFileName 属性。 配置文件的格式应如下所示:

<configuration>
  <system.diagnostics>
    <assert assertuienabled="true" logfilename="c:\\myFile.log" />
  </system.diagnostics>
</configuration>

另请参阅

适用于

Assert(Boolean, Debug+AssertInterpolatedStringHandler, Debug+AssertInterpolatedStringHandler)

检查条件;如果条件为 false,则输出指定消息并显示指示调用堆栈的消息框。

public:
 static void Assert(bool condition, System::Diagnostics::Debug::AssertInterpolatedStringHandler % message, System::Diagnostics::Debug::AssertInterpolatedStringHandler % detailMessage);
[System.Diagnostics.Conditional("DEBUG")]
public static void Assert (bool condition, ref System.Diagnostics.Debug.AssertInterpolatedStringHandler message, ref System.Diagnostics.Debug.AssertInterpolatedStringHandler detailMessage);
[<System.Diagnostics.Conditional("DEBUG")>]
static member Assert : bool * AssertInterpolatedStringHandler * AssertInterpolatedStringHandler -> unit
Public Shared Sub Assert (condition As Boolean, ByRef message As Debug.AssertInterpolatedStringHandler, ByRef detailMessage As Debug.AssertInterpolatedStringHandler)

参数

condition
Boolean

要计算的条件表达式。 如果条件为 true,则不会发送指定消息,也不显示消息框。

message
Debug.AssertInterpolatedStringHandler

要发送到 Listeners 集合的消息。

detailMessage
Debug.AssertInterpolatedStringHandler

要发送到 Listeners 集合的详细消息。

属性

注解

.NET 6 中引入了此重载以提高性能。 与采用 String 参数的重载相比,此重载仅在需要消息时计算任何内插字符串格式项。

默认情况下,该方法 Debug.Assert 仅在调试版本中有效。 Trace.Assert如果要在发布版本中执行断言,请使用该方法。 有关详细信息,请参阅托管代码中的断言

通常, Assert 该方法用于在程序开发期间识别逻辑错误。 Assert 计算条件。 如果结果为 false,它将指定的诊断消息发送到 Listeners 集合。 可以通过向集合添加或从集合中删除一个TraceListenerListeners对象来自定义此行为。

应用程序在用户界面模式下运行时,会显示一个消息框,其中显示了包含文件和行号的调用堆栈。 消息框包含三个按钮: 中止重试忽略。 单击 “中止 ”按钮将终止应用程序。 如果应用程序在调试器中运行,则单击 “重试 ”会将你发送到调试器中的代码,或者提供打开调试器(如果不是)。 单击“ 忽略 ”继续执行代码中的下一条指令。

备注

消息框的显示取决于是否存在 DefaultTraceListenerDefaultTraceListener如果集合中Listeners不存在,则不显示消息框。 DefaultTraceListener可以通过对属性 () System.Diagnostics.Trace.Listeners.Clear() 调用Clear方法Listeners来删除该方法。 对于.NET Framework应用,还可以使用<clear>应用的配置文件中的元素和<remove>元素

对于.NET Framework应用,可以更改与应用程序名称相对应的配置文件中的行为DefaultTraceListener。 在此文件中,可以启用或禁用断言消息框或设置 DefaultTraceListener.LogFileName 属性。 配置文件的格式应如下所示:

<configuration>
  <system.diagnostics>
    <assert assertuienabled="true" logfilename="c:\\myFile.log" />
  </system.diagnostics>
</configuration>

另请参阅

适用于

Assert(Boolean, String, String)

检查条件 ;如果条件为 false,则输出两条指定消息,并显示一个消息框,其中显示调用堆栈。

public:
 static void Assert(bool condition, System::String ^ message, System::String ^ detailMessage);
[System.Diagnostics.Conditional("DEBUG")]
public static void Assert (bool condition, string message, string detailMessage);
[System.Diagnostics.Conditional("DEBUG")]
public static void Assert (bool condition, string? message, string? detailMessage);
[<System.Diagnostics.Conditional("DEBUG")>]
static member Assert : bool * string * string -> unit
Public Shared Sub Assert (condition As Boolean, message As String, detailMessage As String)

参数

condition
Boolean

要计算的条件表达式。 如果条件为 true,则不会发送指定的消息,也不显示消息框。

message
String

要发送到 Listeners 集合的消息。

detailMessage
String

要发送到 Listeners 集合的详细消息。

属性

示例

以下示例检查参数是否 type 有效。 null如果是typeAssert则输出两条消息。

void MyMethod( Object^ obj, Type^ type )
{
   #if defined(DEBUG)
   Debug::Assert( type != nullptr, "Type paramater is null", "Can't get object for null type" );
   #endif
}
public static void MyMethod(Type type, Type baseType)
{
    Debug.Assert(type != null, "Type parameter is null",
       "Can't get object for null type");

    // Perform some processing.
}
Public Shared Sub MyMethod(type As Type, baseType As Type)
    Debug.Assert( Not (type Is Nothing), "Type parameter is null", "Can't get object for null type")
    ' Perform some processing.
End Sub

注解

默认情况下,该方法 Debug.Assert 仅在调试版本中有效。 Trace.Assert如果要在发布版本中执行断言,请使用该方法。 有关详细信息,请参阅托管代码中的断言

通常, Assert(Boolean, String, String) 该方法用于在程序开发期间识别逻辑错误。 Assert 计算条件。 如果结果为 false,它将指定的诊断消息和详细消息发送到 Listeners 集合。 可以通过向集合添加或从集合中删除一个TraceListenerListeners对象来自定义此行为。

应用程序在用户界面模式下运行时,会显示一个消息框,其中显示了包含文件和行号的调用堆栈。 消息框包含三个按钮: 中止重试忽略。 单击 “中止 ”按钮将终止应用程序。 如果应用程序在调试器中运行,则单击 “重试 ”会将你发送到调试器中的代码,或者提供打开调试器(如果不是)。 单击“ 忽略 ”继续执行代码中的下一条指令。

备注

消息框的显示取决于是否存在 DefaultTraceListenerDefaultTraceListener如果集合中Listeners不存在,则不显示消息框。 DefaultTraceListener可以通过对属性 () System.Diagnostics.Trace.Listeners.Clear() 调用Clear方法Listeners来删除该方法。 对于.NET Framework应用,还可以使用<clear>应用的配置文件中的元素和<remove>元素

对于.NET Framework应用,可以更改与应用程序名称相对应的配置文件中的行为DefaultTraceListener。 在此文件中,可以启用或禁用断言消息框或设置 DefaultTraceListener.LogFileName 属性。 配置文件的格式应如下所示:

<configuration>
  <system.diagnostics>
    <assert assertuienabled="true" logfilename="c:\\myFile.log" />
  </system.diagnostics>
</configuration>

另请参阅

适用于

Assert(Boolean, String, String, Object[])

检查条件;如果条件为 false,则输出两条指定消息(简单消息和格式化消息),并显示一个消息框,其中会显示调用堆栈。

public:
 static void Assert(bool condition, System::String ^ message, System::String ^ detailMessageFormat, ... cli::array <System::Object ^> ^ args);
[System.Diagnostics.Conditional("DEBUG")]
public static void Assert (bool condition, string message, string detailMessageFormat, params object[] args);
[System.Diagnostics.Conditional("DEBUG")]
public static void Assert (bool condition, string? message, string detailMessageFormat, params object?[] args);
[<System.Diagnostics.Conditional("DEBUG")>]
static member Assert : bool * string * string * obj[] -> unit
Public Shared Sub Assert (condition As Boolean, message As String, detailMessageFormat As String, ParamArray args As Object())

参数

condition
Boolean

要计算的条件表达式。 如果条件为 true,则不会发送指定的消息,也不显示消息框。

message
String

要发送到 Listeners 集合的消息。

detailMessageFormat
String

要发送到 Listeners 集合的复合格式字符串。 该消息包含与零个或多个格式项混合的文本,它与 args 数组中的对象相对应。

args
Object[]

一个对象数组,其中包含零个或多个要设置格式的对象。

属性

注解

此方法使用 .NET 复合格式设置功能 将对象的值转换为其文本表示形式,并在字符串中嵌入该表示形式。 生成的字符串将发送到 Listeners 集合。

默认情况下,该方法 Debug.Assert 仅在调试版本中有效。 Trace.Assert如果要在发布版本中执行断言,请使用该方法。 有关详细信息,请参阅托管代码中的断言

通常, Assert(Boolean, String, String, Object[]) 该方法用于在程序开发期间识别逻辑错误。 Assert 计算条件。 如果结果为 falseString.Format(String, Object[]) 则调用该方法, detailMessageFormat 并将字符串和 args 数组作为参数传入。 Assert(Boolean, String, String, Object[]) 然后将指定的文本消息和格式化的文本消息发送到 Listeners 集合。 可以通过向集合添加或从集合中删除一个TraceListenerListeners对象来自定义此行为。

应用程序在用户界面模式下运行时,会显示一个消息框,其中显示了包含文件和行号的调用堆栈。 消息框包含三个按钮: 中止重试忽略。 单击 “中止 ”按钮将终止应用程序。 如果应用程序在调试器中运行,则单击 “重试 ”会将你发送到调试器中的代码,或者提供打开调试器(如果不是)。 单击“ 忽略 ”继续执行代码中的下一条指令。

备注

消息框的显示取决于消息框的存在 DefaultTraceListenerDefaultTraceListener如果集合中Listeners不存在,则不显示消息框。 DefaultTraceListener可以通过对属性 () System.Diagnostics.Trace.Listeners.Clear() 调用Clear方法Listeners来删除该方法。 对于.NET Framework应用,还可以使用<clear>应用的配置文件中的元素和<remove>元素

对于.NET Framework应用,可以更改与应用程序名称相对应的配置文件中的行为DefaultTraceListener。 在此文件中,可以启用或禁用断言消息框或设置 DefaultTraceListener.LogFileName 属性。 配置文件的格式应如下所示:

<configuration>
  <system.diagnostics>
    <assert assertuienabled="true" logfilename="c:\\myFile.log" />
  </system.diagnostics>
</configuration>

适用于