MethodBase.IsFinal Tulajdonság

Definíció

Egy értéket kap, amely jelzi, hogy ez a metódus .final

public:
 property bool IsFinal { bool get(); };
public bool IsFinal { get; }
member this.IsFinal : bool
Public ReadOnly Property IsFinal As Boolean

Tulajdonság értéke

trueha ez a finalmódszer ; egyébként. false

Megvalósítás

Példák

Az alábbi példa a következőhöz falsejelenik megIsFinal, ami arra vezethet, hogy a MyMethod felülírható. A kód akkor is nyomtat, false ha a MyMethod nincs megjelölve virtual , ezért nem bírálható felül.

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);
    }
}
Imports System.Reflection

Public Class MyClass1
    
    Public Sub MyMethod()
    End Sub
    
    Public Shared Sub Main()
        Dim m As MethodBase = GetType(MyClass1).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)
    End Sub
End Class

Megjegyzések

Ha a virtuális metódus meg van jelölve final, az nem bírálható felül származtatott osztályokban. A felülbírált virtuális metódus final jelölhető meg a sealed kulcsszóval C# vagy NotOverridable kulcsszóval Visual Basic. A metódust implicit módon is megjelölheti final a fordító. Előfordulhat például, hogy egy metódus nem virtuálisként van definiálva a kódban, de implementál egy interfészmetódust. A Common Language Runtime használatához az interfésztagokat végrehajtó összes metódust meg kell jelölni virtual; ezért a fordító jelöli a metódust virtual final.

Ezt a tulajdonságot a tulajdonsággal IsVirtual együtt használhatja annak megállapítására, hogy egy metódus felülírható-e. Ahhoz, hogy egy metódus felülírható legyen, IsVirtual a tulajdonságnak és trueIsFinal a tulajdonságnak kell lenniefalse. Annak megállapításához, hogy egy metódus felülírható-e, használja a következőhöz hasonló kódot:

if (MethodInfo.IsVirtual && !MethodInfo.IsFinal)
If MethodInfo.IsVirtual AndAlso Not MethodInfo.IsFinal Then

Ha IsVirtual igen false , IsFinaltrueakkor a metódus nem bírálható felül.

A következőre érvényes:

Lásd még