Type.IsAbstract Properti
Definisi
Penting
Beberapa informasi terkait produk prarilis yang dapat diubah secara signifikan sebelum dirilis. Microsoft tidak memberikan jaminan, tersirat maupun tersurat, sehubungan dengan informasi yang diberikan di sini.
Mendapatkan nilai yang menunjukkan apakah Type abstrak dan harus ditimpa.
public:
property bool IsAbstract { bool get(); };
public bool IsAbstract { get; }
member this.IsAbstract : bool
Public ReadOnly Property IsAbstract As Boolean
Nilai Properti
true
Type jika abstrak; jika tidak, false
.
Penerapan
Contoh
Contoh berikut membuat array Type objek yang mewakili jenis berikut: berisi jenis mengembalikan true
jika objek yang ditentukan adalah abstract
; jika tidak, ia mengembalikan false
.
AbstractClass
, kelas abstrak (kelas yang ditandai sebagaiabstract
dalam C# danMustInherit
di Visual Basic).DerivedClass
, kelas yang mewarisi dariAbstractClass
.SingleClass
, kelas yang tidak dapat diwariskan. ini didefinisikan sebagaisealed
dalam C# danNotInheritable
di Visual Basic.ITypeInfo
, antarmuka.ImplementingClass
, kelas yang mengimplementasikanITypeInfo
antarmuka.
Metode ini hanya mengembalikan true
untuk AbstractClass
, kelas abstrak, dan ITypeInfo
, antarmuka .
using System;
public abstract class AbstractClass
{}
public class DerivedClass : AbstractClass
{}
public sealed class SingleClass
{}
public interface ITypeInfo
{
string GetName();
}
public class ImplementingClass : ITypeInfo
{
public string GetName()
{
return this.GetType().FullName;
}
}
delegate string InputOutput(string inp);
public class Example
{
public static void Main()
{
Type[] types= { typeof(AbstractClass),
typeof(DerivedClass),
typeof(ITypeInfo),
typeof(SingleClass),
typeof(ImplementingClass),
typeof(InputOutput) };
foreach (var type in types)
Console.WriteLine("{0} is abstract: {1}",
type.Name, type.IsAbstract);
}
}
// The example displays the following output:
// AbstractClass is abstract: True
// DerivedClass is abstract: False
// ITypeInfo is abstract: True
// SingleClass is abstract: False
// ImplementingClass is abstract: False
// InputOutput is abstract: False
[<AbstractClass>]
type AbstractClass() = class end
type DerivedClass() = inherit AbstractClass()
[<Sealed>]
type SingleClass() = class end
type ITypeInfo =
abstract GetName: unit -> string
type ImplementingClass() =
interface ITypeInfo with
member this.GetName() =
this.GetType().FullName
type DiscriminatedUnion =
| Yes
| No of string
type Record =
{ Name: string
Age: int }
type InputOutput = delegate of inp: string -> string
let types =
[ typeof<AbstractClass>
typeof<DerivedClass>
typeof<ITypeInfo>
typeof<SingleClass>
typeof<ImplementingClass>
typeof<DiscriminatedUnion>
typeof<Record>
typeof<InputOutput> ]
for typ in types do
printfn $"{typ.Name} is abstract: {typ.IsAbstract}"
// The example displays the following output:
// AbstractClass is abstract: True
// DerivedClass is abstract: False
// ITypeInfo is abstract: True
// SingleClass is abstract: False
// ImplementingClass is abstract: False
// DiscriminatedUnion is abstract: True
// Record is abstract: False
// InputOutput is abstract: False
Public MustInherit Class AbstractClass
End Class
Public Class DerivedClass : Inherits AbstractClass
End Class
Public NotInheritable Class SingleClass
End Class
Public Interface ITypeInfo
Function GetName() As String
End Interface
Public Class ImplementingClass : Implements ITypeInfo
Public Function GetName() As String _
Implements ITypeInfo.GetName
Return Me.GetType().FullName
End Function
End Class
Delegate Function InputOutput(inp As String) As String
Module Example
Public Sub Main()
Dim types() As Type = { GetType(AbstractClass),
GetType(DerivedClass),
GetType(ITypeInfo),
GetType(SingleClass),
GetType(ImplementingClass),
GetType(InputOutput) }
For Each type In types
Console.WriteLine("{0} is abstract: {1}",
type.Name, type.IsAbstract)
Next
End Sub
End Module
' The example displays the following output:
' AbstractClass is abstract: True
' DerivedClass is abstract: False
' ITypeInfo is abstract: True
' SingleClass is abstract: False
' ImplementingClass is abstract: False
' InputOutput is abstract: False
Keterangan
Properti IsAbstract mengembalikan true
dalam kasus berikut:
Jenis saat ini bersifat abstrak; artinya, itu tidak dapat diinisiasi, tetapi hanya dapat berfungsi sebagai kelas dasar untuk kelas turunan. Di C#, kelas abstrak ditandai dengan kata kunci abstrak ; di F#, mereka ditandai dengan atribut AbstractClass ; di Visual Basic, mereka ditandai dengan kata kunci MustInherit .
Jenis saat ini adalah antarmuka.
Jika saat ini Type mewakili parameter jenis dalam definisi jenis generik atau metode generik, properti ini selalu mengembalikan false
.