Este artículo se tradujo automáticamente. Para ver el artículo en inglés, active la casilla Inglés. Además, puede mostrar el texto en inglés en una ventana emergente si mueve el puntero del mouse sobre el texto.
Traducción
Inglés

MethodBase.IsFinal (Propiedad)

 

Obtiene un valor que indica si este método es final.

Espacio de nombres:   System.Reflection
Ensamblado:  mscorlib (en mscorlib.dll)

public bool IsFinal { get; }

Valor de propiedad

Type: System.Boolean

Es true si este método es final; en caso contrario, es false.

Para determinar si un método se puede reemplazar, no es suficiente comprobar si IsVirtual es true.Para que un método pueda invalidarse, el valor de la propiedad IsVirtual debe ser true y el valor de la propiedad IsFinal debe ser false.Por ejemplo, un método podría ser no virtual e implementar un método de interfaz.Common Language Runtime requiere que todos los métodos que implementan miembros de interfaz se marquen como virtual; por consiguiente, el compilador marca el método como virtual final.Así, hay casos en los que un método está marcado como virtual, pero no es reemplazable.

Para establecer con certeza si un método se puede reemplazar, utilice un código como el siguiente:

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

Si IsVirtual es false o IsFinal es true, no se podrá reemplazar el método.

En este ejemplo se muestra false para IsFinal, lo que podría hacer pensar que MyMethod se puede reemplazar.El código imprime false aunque MyMethod no esté marcado como virtual y, por tanto, no se puede reemplazar.

using System;
using System.Reflection;

public class MyClass 
{
    public void MyMethod() 
    {
    }
    public static void Main() 
    {
        MethodBase m = typeof(MyClass).GetMethod("MyMethod");
        Console.WriteLine("The IsFinal property value of MyMethod is {0}.", m.IsFinal);
        Console.WriteLine("The IsVirtual property value of MyMethod is {0}.", m.IsVirtual);
    }
}

Universal Windows Platform
Disponible desde 4.5
.NET Framework
Disponible desde 1.1
Portable Class Library
Compatible con: portable .NET platforms
Silverlight
Disponible desde 2.0
Windows Phone Silverlight
Disponible desde 7.0
Windows Phone
Disponible desde 8.1
Volver al principio
Mostrar: