Windows Dev Center

DebuggerNonUserCodeAttribute Class

Identifies a type or member that is not part of the user code for an application.


Namespace:  System.Diagnostics
Assembly:  mscorlib (in mscorlib.dll)

[AttributeUsageAttribute(AttributeTargets.Class|AttributeTargets.Constructor|AttributeTargets.Method|AttributeTargets.Property|AttributeTargets.Struct, Inherited = false)]
public sealed class DebuggerNonUserCodeAttribute : Attribute

The DebuggerNonUserCodeAttribute type exposes the following members.

Public methodDebuggerNonUserCodeAttributeInitializes a new instance of the DebuggerNonUserCodeAttribute class.

Public methodEqualsInfrastructure. Returns a value that indicates whether this instance is equal to a specified object. (Inherited from Attribute.)
Protected methodFinalizeAllows an object to try to free resources and perform other cleanup operations before the Object is reclaimed by garbage collection. (Inherited from Object.)
Public methodGetHashCodeReturns the hash code for this instance. (Inherited from Attribute.)
Public methodGetTypeGets the Type of the current instance. (Inherited from Object.)
Public methodMatchWhen overridden in a derived class, returns a value that indicates whether this instance equals a specified object. (Inherited from Attribute.)
Protected methodMemberwiseCloneCreates a shallow copy of the current Object. (Inherited from Object.)
Public methodToStringReturns a string that represents the current object. (Inherited from Object.)

Designer-provided types and members that are not part of the code specifically created by the user can complicate the debugging experience. This attribute suppresses the display of these adjunct types and members in the debugger window and automatically steps through, instead of into, designer-provided code. When the debugger encounters this attribute when it steps through user code, the user will not see the designer-provided code and will skip to the next user-supplied code statement.


The common language runtime attaches no semantics to this attribute. It is provided for use by source code debuggers. For example, in Visual Studio, the debugger does not display an element that has this attribute in the debugger window, does not stop in a method that has this attribute, and does not allow a breakpoint to be set in that method.

The debugger behavior when the DebuggerNonUserCodeAttribute is present is similar to using a combination of the DebuggerHiddenAttribute attribute, which hides the code from the debugger, and the DebuggerStepThroughAttribute attribute, which tells the debugger to step through, instead of into, the code it is applied to.

Windows Phone OS

Supported in: 8.1, 8.0, 7.1, 7.0

Windows Phone

Any public static (Shared in Visual Basic) members of this type are thread safe. Any instance members are not guaranteed to be thread safe.

© 2015 Microsoft