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 。 可以通过向集合添加 TraceListener 或从 Listeners 集合中删除来自定义此行为。

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

注意

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

注意

消息框的显示取决于 是否存在 DefaultTraceListenerDefaultTraceListener如果 不在集合中Listeners,则不显示消息框。 DefaultTraceListener可以通过调用 Clear 属性上的 方法Listeners删除 (System.Diagnostics.Trace.Listeners.Clear()) 。 对于.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 集合。 可以通过向集合添加 TraceListener 或从 Listeners 集合中删除来自定义此行为。

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

注意

消息框的显示取决于 是否存在 DefaultTraceListenerDefaultTraceListener如果 不在集合中Listeners,则不显示消息框。 DefaultTraceListener可以通过调用 Clear 属性上的 方法Listeners删除 (System.Diagnostics.Trace.Listeners.Clear()) 。 对于.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 有效。 如果 typenullAssert 则输出消息。

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 集合。 可以通过向集合添加 TraceListener 或从 Listeners 集合中删除来自定义此行为。

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

注意

消息框的显示取决于 是否存在 DefaultTraceListenerDefaultTraceListener如果 不在集合中Listeners,则不显示消息框。 DefaultTraceListener可以通过调用 Clear 属性上的 方法Listeners删除 (System.Diagnostics.Trace.Listeners.Clear()) 。 对于.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 集合。 可以通过在集合中添加 TraceListener 或从 Listeners 集合中删除来自定义此行为。

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

注意

消息框的显示取决于 是否存在 DefaultTraceListenerDefaultTraceListener如果 不在集合中Listeners,则不显示消息框。 DefaultTraceListener可以通过调用 Clear 属性上的 Listeners 方法删除 , (System.Diagnostics.Trace.Listeners.Clear()) 。 对于.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 有效。 如果 typenull,则 Assert 输出两条消息。

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 集合。 可以通过在集合中添加 TraceListener 或从 Listeners 集合中删除来自定义此行为。

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

注意

消息框的显示取决于 是否存在 DefaultTraceListenerDefaultTraceListener如果 不在集合中Listeners,则不显示消息框。 DefaultTraceListener可以通过调用 Clear 属性上的 Listeners 方法删除 , (System.Diagnostics.Trace.Listeners.Clear()) 。 对于.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 计算条件。 如果结果为 false,则 String.Format(String, Object[]) 调用 方法, detailMessageFormat 并将字符串和 args 数组作为参数传入。 Assert(Boolean, String, String, Object[]) 然后将指定的文本消息和格式化的文本消息发送到 Listeners 集合。 可以通过在集合中添加 TraceListener 或从 Listeners 集合中删除来自定义此行为。

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

注意

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

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

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

适用于