Debug.Assert 方法
定义
重要
一些信息与预发行产品相关,相应产品在发行之前可能会进行重大修改。 对于此处提供的信息,Microsoft 不作任何明示或暗示的担保。
检查条件 ;如果条件为 false
,则输出消息,并显示一个消息框,其中显示调用堆栈。
重载
Assert(Boolean) |
检查条件 ;如果条件为 |
Assert(Boolean, Debug+AssertInterpolatedStringHandler) |
检查条件;如果条件为 |
Assert(Boolean, String) |
检查条件;如果条件为 |
Assert(Boolean, Debug+AssertInterpolatedStringHandler, Debug+AssertInterpolatedStringHandler) |
检查条件;如果条件为 |
Assert(Boolean, String, String) |
检查条件 ;如果条件为 |
Assert(Boolean, String, String, Object[]) |
检查条件;如果条件为 |
Assert(Boolean)
- Source:
- Debug.cs
- Source:
- Debug.cs
- Source:
- Debug.cs
检查条件 ;如果条件为 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 应用不支持模式对话框,因此它们在用户界面模式和非用户界面模式下的行为相同。 消息在调试模式下写入活动跟踪侦听器,或者在发布模式下不写入任何消息。
注意
消息框的显示取决于 是否存在 DefaultTraceListener。 DefaultTraceListener如果 不在集合中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>
另请参阅
- Debug
- Trace
- BooleanSwitch
- TraceSwitch
- TraceListener
- DefaultTraceListener
- ConsoleTraceListener
- ConditionalAttribute
适用于
Assert(Boolean, Debug+AssertInterpolatedStringHandler)
- Source:
- Debug.cs
- Source:
- Debug.cs
- Source:
- Debug.cs
检查条件;如果条件为 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
,则不会发送指定消息,也不显示消息框。
要发送到 Listeners 集合的消息。
- 属性
注解
此重载是在 .NET 6 中引入的,用于提高性能。 与采用 String
参数的重载相比,此重载仅在需要消息时计算任何内插字符串格式设置项。
默认情况下,Debug.Assert 方法仅适用于调试版本。 Trace.Assert如果要在发布版本中执行断言,请使用 方法。 有关详细信息,请参阅托管代码中的断言。
通常, Assert 方法用于识别程序开发期间的逻辑错误。 Assert 计算条件。 如果结果为 false
,则它将指定的诊断消息发送到 Listeners 集合。 可以通过在集合中添加 TraceListener 或从 Listeners 集合中删除来自定义此行为。
当应用程序在用户界面模式下运行时,它将显示一个消息框,其中显示带有文件和行号的调用堆栈。 消息框包含三个按钮: “中止”、“ 重试”和 “忽略”。 单击“ 中止 ”按钮将终止应用程序。 如果应用程序在调试器中运行,则单击“ 重试 ”会将你发送到调试器中的代码;如果应用程序未在调试器中运行,则会打开调试器。 单击“ 忽略 ”继续执行代码中的下一个指令。
注意
消息框的显示取决于 是否存在 DefaultTraceListener。 DefaultTraceListener如果 不在集合中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>
另请参阅
- Debug
- Trace
- BooleanSwitch
- TraceSwitch
- TraceListener
- DefaultTraceListener
- ConsoleTraceListener
- ConditionalAttribute
适用于
Assert(Boolean, String)
- Source:
- Debug.cs
- Source:
- Debug.cs
- Source:
- Debug.cs
检查条件;如果条件为 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
,则不会发送指定消息,也不显示消息框。
- 属性
示例
以下示例检查 参数是否 type
有效。 如果 type
为 null
, Assert 则输出消息。
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 集合中删除来自定义此行为。
当应用程序在用户界面模式下运行时,它将显示一个消息框,其中显示带有文件和行号的调用堆栈。 消息框包含三个按钮: “中止”、“ 重试”和 “忽略”。 单击“ 中止 ”按钮将终止应用程序。 如果应用程序在调试器中运行,则单击“ 重试 ”会将你发送到调试器中的代码;如果应用程序未在调试器中运行,则会打开调试器。 单击“ 忽略 ”继续执行代码中的下一个指令。
注意
消息框的显示取决于 是否存在 DefaultTraceListener。 DefaultTraceListener如果 不在集合中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>
另请参阅
- Debug
- Trace
- BooleanSwitch
- TraceSwitch
- TraceListener
- DefaultTraceListener
- ConsoleTraceListener
- ConditionalAttribute
适用于
Assert(Boolean, Debug+AssertInterpolatedStringHandler, Debug+AssertInterpolatedStringHandler)
- Source:
- Debug.cs
- Source:
- Debug.cs
- Source:
- Debug.cs
检查条件;如果条件为 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
,则不会发送指定消息,也不显示消息框。
要发送到 Listeners 集合的消息。
- detailMessage
- Debug.AssertInterpolatedStringHandler
要发送到 Listeners 集合的详细消息。
- 属性
注解
此重载是在 .NET 6 中引入的,用于提高性能。 与采用 String
参数的重载相比,此重载仅在需要消息时计算任何内插字符串格式设置项。
默认情况下,Debug.Assert 方法仅适用于调试版本。 Trace.Assert如果要在发布版本中执行断言,请使用 方法。 有关详细信息,请参阅托管代码中的断言。
通常, Assert 方法用于识别程序开发期间的逻辑错误。 Assert 计算条件。 如果结果为 false
,则它将指定的诊断消息发送到 Listeners 集合。 可以通过在集合中添加 TraceListener 或从 Listeners 集合中删除来自定义此行为。
当应用程序在用户界面模式下运行时,它将显示一个消息框,其中显示带有文件和行号的调用堆栈。 消息框包含三个按钮: “中止”、“ 重试”和 “忽略”。 单击“ 中止 ”按钮将终止应用程序。 如果应用程序在调试器中运行,则单击“ 重试 ”会将你发送到调试器中的代码;如果应用程序未在调试器中运行,则会打开调试器。 单击“ 忽略 ”继续执行代码中的下一个指令。
注意
消息框的显示取决于 是否存在 DefaultTraceListener。 DefaultTraceListener如果 不在集合中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>
另请参阅
- Debug
- Trace
- BooleanSwitch
- TraceSwitch
- TraceListener
- DefaultTraceListener
- ConsoleTraceListener
- ConditionalAttribute
适用于
Assert(Boolean, String, String)
- Source:
- Debug.cs
- Source:
- Debug.cs
- Source:
- Debug.cs
检查条件 ;如果条件为 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
,则不会发送指定的消息,也不显示消息框。
- 属性
示例
以下示例检查 参数是否 type
有效。 如果 type
为 null
,则 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 集合中删除来自定义此行为。
当应用程序在用户界面模式下运行时,它将显示一个消息框,其中显示带有文件和行号的调用堆栈。 消息框包含三个按钮: “中止”、“ 重试”和 “忽略”。 单击“ 中止 ”按钮将终止应用程序。 如果应用程序在调试器中运行,则单击“ 重试 ”会将你发送到调试器中的代码;如果应用程序未在调试器中运行,则会打开调试器。 单击“ 忽略 ”继续执行代码中的下一个指令。
注意
消息框的显示取决于 是否存在 DefaultTraceListener。 DefaultTraceListener如果 不在集合中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>
另请参阅
- Debug
- Trace
- BooleanSwitch
- TraceSwitch
- TraceListener
- DefaultTraceListener
- ConsoleTraceListener
- ConditionalAttribute
适用于
Assert(Boolean, String, String, Object[])
- Source:
- Debug.cs
- Source:
- Debug.cs
- Source:
- Debug.cs
检查条件;如果条件为 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
,则不会发送指定的消息,也不显示消息框。
- 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 集合中删除来自定义此行为。
当应用程序在用户界面模式下运行时,它将显示一个消息框,其中显示带有文件和行号的调用堆栈。 消息框包含三个按钮: “中止”、“ 重试”和 “忽略”。 单击“ 中止 ”按钮将终止应用程序。 如果应用程序在调试器中运行,则单击“ 重试 ”会将你发送到调试器中的代码;如果应用程序未在调试器中运行,则会打开调试器。 单击“ 忽略 ”继续执行代码中的下一个指令。
注意
消息框的显示取决于 是否存在 DefaultTraceListener。 DefaultTraceListener如果 不在集合中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>