Informations
Le sujet que vous avez demandé est indiqué ci-dessous. Toutefois, ce sujet ne figure pas dans la bibliothèque.
Ce sujet n'a pas encore été évalué - Évaluez ce sujet

MethodBase.IsFinal, propriété

Mise à jour : novembre 2007

Obtient une valeur indiquant si cette méthode est final.

Espace de noms :  System.Reflection
Assembly :  mscorlib (dans mscorlib.dll)

public bool IsFinal { get; }
/** @property */
public final boolean get_IsFinal()

public final function get IsFinal () : boolean

Valeur de propriété

Type : System.Boolean

true si cette méthode est final ; sinon, false.

Pour déterminer si une méthode est substituable, il ne suffit pas de vérifier si IsVirtual est true. Pour qu'une méthode soit substituable, IsVirtual doit être true et IsFinal doit être false. Par exemple, une méthode peut être non virtuelle mais implémenter une méthode d'interface. Le Common Language Runtime exige que toutes les méthodes qui implémentent des membres d'interface soient marquées comme virtual ; par conséquent, le compilateur marque la méthode virtual final. Ainsi, il peut arriver qu'une méthode soit marquée comme virtual, mais ne soit pas substituable.

Pour déterminer avec certitude si une méthode est substituable, vous pouvez utiliser le code suivant :

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

Si IsVirtual est false ou IsFinal est true, cela signifie que la méthode ne peut pas être substituée.

L'exemple suivant affiche false pour IsFinal, ce qui peut prêter à croire que MyMethod est substituable. Le code imprime false même si MyMethod n'est pas marqué comme virtual et ne peut donc pas être substitué.

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);
    }
}


import System.*;
import System.Reflection.*;

public class MyClass
{   
    public void MyMethod()
    {
    } //MyMethod

    public static void main(String[] args)
    {
        MethodBase m = MyClass.class.ToType().GetMethod("MyMethod");
        Console.WriteLine("The IsFinal property value of MyMethod is {0}.",
            System.Convert.ToString( m.get_IsFinal()));
        Console.WriteLine("The IsVirtual property value of MyMethod is {0}.",
            System.Convert.ToString( m.get_IsVirtual()));
    } //main
} //MyClass


import System;
import System.Reflection;

 public class MyClass 
 {
 public function MyMethod() : void
   {
   }
 public static function Main() : void 
   {
    var m : MethodBase  = MyClass.GetMethod("MyMethod");
    Console.WriteLine(m.IsFinal);
   }
 }
 MyClass.Main();


Windows Vista, Windows XP SP2, Windows XP Media Center Edition, Windows XP Professionnel Édition x64, Windows XP Starter Edition, Windows Server 2003, Windows Server 2000 SP4, Windows Millennium Edition, Windows 98, Windows CE, Windows Mobile pour Smartphone, Windows Mobile pour Pocket PC, Xbox 360

Le .NET Framework et le .NET Compact Framework ne prennent pas en charge toutes les versions de chaque plateforme. Pour obtenir la liste des versions prises en charge, consultez Configuration requise du .NET Framework.

.NET Framework

Pris en charge dans : 3.5, 3.0, 2.0, 1.1, 1.0

.NET Compact Framework

Pris en charge dans : 3.5, 2.0, 1.0

XNA Framework

Pris en charge dans : 2.0, 1.0
Cela vous a-t-il été utile ?
(1500 caractères restants)
Merci pour vos suggestions.

Ajouts de la communauté

Afficher:
© 2014 Microsoft. Tous droits réservés.