Type.IsPrimitiveImpl 方法
定義
重要
部分資訊涉及發行前產品,在發行之前可能會有大幅修改。 Microsoft 對此處提供的資訊,不做任何明確或隱含的瑕疵擔保。
當在導出類別中覆寫時,實作了該 IsPrimitive 性質,並判斷是否 Type 為原始型態之一。
protected:
abstract bool IsPrimitiveImpl();
protected abstract bool IsPrimitiveImpl();
abstract member IsPrimitiveImpl : unit -> bool
Protected MustOverride Function IsPrimitiveImpl () As Boolean
傳回
true 若 是 Type 原始型態之一;否則, false。
範例
以下範例判斷給定型態是否為原始型態,並顯示結果。
using System;
using System.Reflection;
public class MyTypeDelegatorClass : TypeDelegator
{
public string myElementType = null;
private Type myType = null ;
public MyTypeDelegatorClass(Type myType) : base(myType)
{
this.myType = myType;
}
// Override the IsPrimitiveImpl.
protected override bool IsPrimitiveImpl()
{
// Determine whether the type is a primitive type.
if(myType.IsPrimitive)
{
myElementType = "primitive";
return true;
}
return false;
}
}
public class MyTypeDemoClass
{
public static void Main()
{
try
{
Console.WriteLine ("Determine whether int is a primitive type.");
MyTypeDelegatorClass myType;
myType = new MyTypeDelegatorClass(typeof(int));
// Determine whether int is a primitive type.
if( myType.IsPrimitive)
{
Console.WriteLine(typeof(int) + " is a primitive type.");
}
else
{
Console.WriteLine(typeof(int) + " is not a primitive type.");
}
Console.WriteLine ("\nDetermine whether string is a primitive type.");
myType = new MyTypeDelegatorClass(typeof(string));
// Determine if string is a primitive type.
if( myType.IsPrimitive)
{
Console.WriteLine(typeof(string) + " is a primitive type.");
}
else
{
Console.WriteLine(typeof(string) + " is not a primitive type.");
}
}
catch( Exception e )
{
Console.WriteLine("Exception: {0}", e.Message);
}
}
}
open System.Reflection
type MyTypeDelegatorClass(myType) =
inherit TypeDelegator(myType)
[<DefaultValue>]
val mutable public myElementType : string
// Override the IsPrimitiveImpl.
override this.IsPrimitiveImpl() =
// Determine whether the type is a primitive type.
if myType.IsPrimitive then
this.myElementType <- "primitive"
true
else
false
try
printfn "Determine whether int is a primitive type."
let myType = MyTypeDelegatorClass typeof<int>
// Determine whether int is a primitive type.
if myType.IsPrimitive then
printfn $"{typeof<int>} is a primitive type."
else
printfn $"{typeof<int>} is not a primitive type."
printfn "\nDetermine whether string is a primitive type."
let myType = MyTypeDelegatorClass typeof<string>
// Determine if string is a primitive type.
if myType.IsPrimitive then
printfn $"{typeof<string>} is a primitive type."
else
printfn $"{typeof<string>} is not a primitive type."
with e ->
printfn $"Exception: {e.Message}"
Imports System.Reflection
Public Class MyTypeDelegatorClass
Inherits TypeDelegator
Public myElementType As String = Nothing
Private myType As Type = Nothing
Public Sub New(ByVal myType As Type)
MyBase.New(myType)
Me.myType = myType
End Sub
' Override the IsPrimitiveImpl method.
Protected Overrides Function IsPrimitiveImpl() As Boolean
' Determine whether the type is a primitive type.
If myType.IsPrimitive Then
myElementType = "primitive"
Return True
End If
Return False
End Function 'IsPrimitiveImpl
End Class
Public Class MyTypeDemoClass
Public Shared Sub Main()
Try
Console.WriteLine("Determine whether int is a primitive type.")
Dim myType As MyTypeDelegatorClass
myType = New MyTypeDelegatorClass(GetType(Integer))
' Determine whether int is a primitive type.
If myType.IsPrimitive Then
Console.WriteLine(GetType(Integer).ToString() + " is a primitive type.")
Else
Console.WriteLine(GetType(Integer).ToString() + " is not a primitive type.")
End If
Console.WriteLine(ControlChars.NewLine + "Determine whether string is a primitive type.")
myType = New MyTypeDelegatorClass(GetType(String))
' Determine whether string is a primitive type.
If myType.IsPrimitive Then
Console.WriteLine(GetType(String).ToString() + " is a primitive type.")
Else
Console.WriteLine(GetType(String).ToString() + " is not a primitive type.")
End If
Catch e As Exception
Console.WriteLine("Exception: {0}", e.Message.ToString())
End Try
End Sub
End Class
備註
原始型態為 Boolean、 Byte、 SByte、 Int16UInt16Int32UInt32Int64UInt64CharDoubleSingle和 。