MethodBase.IsFinal Özellik
Tanım
Önemli
Bazı bilgiler ürünün ön sürümüyle ilgilidir ve sürüm öncesinde önemli değişiklikler yapılmış olabilir. Burada verilen bilgilerle ilgili olarak Microsoft açık veya zımni hiçbir garanti vermez.
Bu yöntemin final
olup olmadığını belirten bir değer alır.
public:
property bool IsFinal { bool get(); };
public bool IsFinal { get; }
member this.IsFinal : bool
Public ReadOnly Property IsFinal As Boolean
Özellik Değeri
true
bu yöntem ise final
; değilse, false
.
Uygulamalar
Örnekler
Aşağıdaki örnekte için IsFinal
görüntülenirfalse
. Bu, MyMethod'un geçersiz kılınabilir olduğunu düşünmenize neden olabilir. MyMethod işaretlenmese virtual
de kod yazdırılır false
ve bu nedenle geçersiz kılınamaz.
using namespace System;
using namespace System::Reflection;
public ref class MyClass
{
public:
void MyMethod(){}
};
int main()
{
MethodBase^ m = MyClass::typeid->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 );
}
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
Açıklamalar
Sanal yöntem olarak işaretlenmişse final
, türetilmiş sınıflarda geçersiz kılınamaz. Geçersiz kılınan sanal yöntem C#'da korumalı anahtar sözcük, Visual Basic'te NotOverridable anahtar sözcüğü veya C++/CLI'da korumalı anahtar sözcük kullanılarak işaretlenebilirfinal
. Yöntemi, derleyici tarafından örtük olarak da işaretlenebilir final
. Örneğin, bir yöntem kodunuzda sanal olmayan olarak tanımlanabilir, ancak bir arabirim yöntemi uygular. Ortak Dil Çalışma Zamanı, arabirim üyelerini uygulayan tüm yöntemlerin olarak virtual
işaretlenmesini gerektirir; bu nedenle derleyici yöntemini virtual final
işaretler.
Bir yöntemin IsVirtual geçersiz kılınabilir olup olmadığını belirlemek için bu özelliği özelliğiyle birlikte kullanabilirsiniz. Bir yöntemin geçersiz kılınabilmesi için özelliğin IsVirtualtrue
ve IsFinal
özelliğinin olması false
gerekir. Bir yöntemin geçersiz kılınabilir olup olmadığını kesin olarak oluşturmak için aşağıdaki gibi bir kod kullanın:
if (MethodInfo.IsVirtual && !MethodInfo.IsFinal)
If MethodInfo.IsVirtual AndAlso Not MethodInfo.IsFinal Then
false
veya IsVirtual
IsFinal
ise true
yöntemi geçersiz kılınamaz.