MethodBase.IsFinal Tulajdonság
Definíció
Fontos
Egyes információk olyan, kiadás előtti termékekre vonatkoznak, amelyek a kiadásig még jelentősen módosulhatnak. A Microsoft nem vállal kifejezett vagy törvényi garanciát az itt megjelenő információért.
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.