Share via


IsVirtual Property

[This documentation is for preview only, and is subject to change in later releases. Blank topics are included as placeholders.]

Gets a value indicating whether the method is virtual.

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

Syntax

'Declaration
Public ReadOnly Property IsVirtual As Boolean
public bool IsVirtual { get; }
public:
property bool IsVirtual {
    bool get ();
}
member IsVirtual : bool with get
function get IsVirtual () : boolean

Property Value

Type: System. . :: . .Boolean
true if this method is virtual; otherwise, false.

Remarks

A virtual member may reference instance data in a class and must be referenced through an instance of the class.

To determine if a method is overridable, it is not sufficient to check that IsVirtual is true. For a method to be overridable, IsVirtual must be true and IsFinal must be false. For example, a method might be non-virtual, but it implements an interface method. The common language runtime requires that all methods that implement interface members must be marked as virtual; therefore, the compiler marks the method virtual final. So there are cases where a method is marked as virtual but is still not overridable.

To establish with certainty whether a method is overridable, use code such as this:

if (MethodInfo.IsVirtual && !MethodInfo.IsFinal)

If IsVirtual is false or IsFinal is true, then the method cannot be overridden.

.NET Framework Security

See Also

Reference

MethodBase Class

System.Reflection Namespace