MethodBase.IsAbstract 属性
获取一个值,该值指示此方法是否为抽象方法。
**命名空间:**System.Reflection
**程序集:**mscorlib(在 mscorlib.dll 中)
语法
声明
Public ReadOnly Property IsAbstract As Boolean
用法
Dim instance As MethodBase
Dim value As Boolean
value = instance.IsAbstract
public bool IsAbstract { get; }
public:
virtual property bool IsAbstract {
bool get () sealed;
}
/** @property */
public final boolean get_IsAbstract ()
public final function get IsAbstract () : boolean
属性值
如果该方法是抽象的,则为 true;否则为 false。
备注
抽象成员在基类上声明并且不提供实现。
若要获取 MethodBase,请首先获取类型。从类型获取方法。从方法获取 MethodBase。如果 MethodBase 或构造函数不是公共的,则它受到保护而且无法容易地进行访问。若要访问非公共方法,请在 GetMethod 中将 BindingFlags 屏蔽设置为 NonPublic。
示例
下面的示例确定指定的方法是否为抽象方法,并显示结果。
Imports System
Imports System.Reflection
Imports Microsoft.VisualBasic
Class methodbase1
Public Shared Function Main() As Integer
Console.WriteLine("Reflection.MethodBase")
Console.WriteLine()
' Get the types.
Dim MyType1 As Type = _
Type.GetType("System.Runtime.Serialization.Formatter")
Dim MyType2 As Type = _
Type.GetType("System.Reflection.MethodBase")
' Get and display the methods
Dim Mymethodbase1 As MethodBase = _
MyType1.GetMethod("WriteInt32", BindingFlags.NonPublic Or BindingFlags.Instance)
Dim Mymethodbase2 As MethodBase = _
MyType2.GetMethod("GetCurrentMethod", BindingFlags.Public Or BindingFlags.Static)
Console.WriteLine("Mymethodbase = {0}", Mymethodbase1.ToString())
If Mymethodbase1.IsAbstract Then
Console.WriteLine(ControlChars.CrLf & "Mymethodbase is an abstract method.")
Else
Console.WriteLine(ControlChars.CrLf & "Mymethodbase is not an abstract method.")
End If
Console.Write("Mymethodbase = {0}", Mymethodbase2.ToString())
If Mymethodbase2.IsAbstract Then
Console.WriteLine(ControlChars.CrLf & "Mymethodbase is an abstract method.")
Else
Console.WriteLine(ControlChars.CrLf & "Mymethodbase is not an abstract method.")
End If
Return 0
End Function
End Class
using System;
using System.Reflection;
// using System.Windows.Forms;
class methodbase
{
public static int Main(string[] args)
{
Console.WriteLine ("\nReflection.MethodBase");
// Get the types.
Type MyType1 = Type.GetType("System.Runtime.Serialization.Formatter");
Type MyType2 = Type.GetType("System.Reflection.MethodBase");
// Get and display the methods.
MethodBase Mymethodbase1 =
MyType1.GetMethod("WriteInt32", BindingFlags.NonPublic|BindingFlags.Instance);
MethodBase Mymethodbase2 =
MyType2.GetMethod("GetCurrentMethod", BindingFlags.Public|BindingFlags.Static);
Console.Write("\nMymethodbase = " + Mymethodbase1.ToString());
if (Mymethodbase1.IsAbstract)
Console.Write ("\nMymethodbase is an abstract method.");
else
Console.Write ("\nMymethodbase is not an abstract method.");
Console.Write("\n\nMymethodbase = " + Mymethodbase2.ToString());
if (Mymethodbase2.IsAbstract)
Console.Write ("\nMymethodbase is an abstract method.");
else
Console.Write ("\nMymethodbase is not an abstract method.");
return 0;
}
}
using namespace System;
using namespace System::Reflection;
int main()
{
Console::WriteLine( "\nReflection.MethodBase" );
// Get the types.
Type^ MyType1 = Type::GetType( "System.Runtime.Serialization.Formatter" );
Type^ MyType2 = Type::GetType( "System.Reflection.MethodBase" );
// Get and display the methods.
MethodBase^ Mymethodbase1 = MyType1->GetMethod( "WriteInt32", static_cast<BindingFlags>(BindingFlags::NonPublic | BindingFlags::Instance) );
MethodBase^ Mymethodbase2 = MyType2->GetMethod( "GetCurrentMethod", static_cast<BindingFlags>(BindingFlags::Public | BindingFlags::Static) );
Console::Write( "\nMymethodbase = {0}", Mymethodbase1 );
if ( Mymethodbase1->IsAbstract )
Console::Write( "\nMymethodbase is an abstract method." );
else
Console::Write( "\nMymethodbase is not an abstract method." );
Console::Write( "\n\nMymethodbase = {0}", Mymethodbase2 );
if ( Mymethodbase2->IsAbstract )
Console::Write( "\nMymethodbase is an abstract method." );
else
Console::Write( "\nMymethodbase is not an abstract method." );
return 0;
}
import System.*;
import System.Reflection.*;
// import System.Windows.Forms;
class Methodbase
{
public static void main(String[] args)
{
Console.WriteLine("\nReflection.MethodBase");
// Get the types.
Type myType1 = Type.GetType("System.Runtime.Serialization.Formatter");
Type myType2 = Type.GetType("System.Reflection.MethodBase");
// Get and display the methods.
MethodBase myMethodBase1 =myType1.GetMethod("WriteInt32",
BindingFlags.NonPublic | BindingFlags.Instance);
MethodBase myMethodBase2 = myType2.GetMethod("GetCurrentMethod",
BindingFlags.Public | BindingFlags.Static);
Console.Write(("\nMymethodbase = " + myMethodBase1.ToString()));
if ( myMethodBase1.get_IsAbstract()) {
Console.Write("\nmyMethodBase is an abstract method.");
}
else {
Console.Write("\nmyMethodBase is not an abstract method.");
}
Console.Write(("\n\nmyMethodBase = " + myMethodBase2.ToString()));
if ( myMethodBase2.get_IsAbstract()) {
Console.Write("\nmyMethodBase is an abstract method.");
}
else {
Console.Write("\nmyMethodBase is not an abstract method.");
}
} //main
} //Methodbase
class methodbase
{
public static function Main() : int
{
Console.WriteLine ("\nReflection.MethodBase");
//Get the MethodBase of two methods.
//Get the types
var MyType1 : Type = Type.GetType("System.Runtime.Serialization.Formatter");
var MyType2 : Type = Type.GetType("System.Reflection.MethodBase");
//Get and display the methods
var Mymethodbase1 : MethodBase =
MyType1.GetMethod("WriteInt32", BindingFlags.Instance|BindingFlags.NonPublic);
var Mymethodbase2 : MethodBase =
MyType2.GetMethod("GetCurrentMethod", BindingFlags.Static|BindingFlags.Public);
Console.Write("\nMymethodbase = " + Mymethodbase1.ToString());
if (Mymethodbase1.IsAbstract)
Console.Write ("\nMymethodbase is an abstract method");
else
Console.Write ("\nMymethodbase is not an abstract method");
Console.Write("\n\nMymethodbase = " + Mymethodbase2.ToString());
if (Mymethodbase2.IsAbstract)
Console.Write ("\nMymethodbase is an abstract method");
else
Console.Write ("\nMymethodbase is not an abstract method");
}
}
methodbase.Main();
/*
Produces the following output
Reflection.MethodBase
Mymethodbase = Void WriteInt32 (Int32, System.String)
Mymethodbase is an abstract method
Mymethodbase = System.Reflection.MethodBase GetCurrentMethod ()
Mymethodbase is not an abstract method
*/
平台
Windows 98、Windows 2000 SP4、Windows CE、Windows Millennium Edition、Windows Mobile for Pocket PC、Windows Mobile for Smartphone、Windows Server 2003、Windows XP Media Center Edition、Windows XP Professional x64 Edition、Windows XP SP2、Windows XP Starter Edition
.NET Framework 并不是对每个平台的所有版本都提供支持。有关受支持版本的列表,请参见系统要求。
版本信息
.NET Framework
受以下版本支持:2.0、1.1、1.0
.NET Compact Framework
受以下版本支持:2.0、1.0
请参见
参考
MethodBase 类
MethodBase 成员
System.Reflection 命名空间
Boolean
BindingFlags 枚举