GetType()與typeof比較
typeof是運算子,無法多載
而GetType是方法
參考文件:https://docs.microsoft.com/zh-tw/dotnet/csharp/language-reference/keywords/typeof
using System;
using System.Collections.Generic;
using System.Linq;
using System.Reflection;
using System.Text;
using System.Threading.Tasks;
namespace Sample
{
class Program
{
static void Main(string[] args)
{
Type myType = typeof(Math);
Console.WriteLine("======================typeof===================");
Console.WriteLine("Math 類別匯出組件名稱: \n {0}", myType.Assembly);
Console.WriteLine("Math 類別所屬命名空間: {0}", myType.Namespace);
Console.WriteLine("Math 類別完整名稱: {0}", myType.FullName);
Console.WriteLine();
Type my2Type = Type.GetType("System.Math");
Console.WriteLine("======================GetType===================");
Console.WriteLine("Math 類別匯出組件名稱: \n {0}", my2Type.Assembly);
Console.WriteLine("Math 類別所屬命名空間: {0}", my2Type.Namespace);
Console.WriteLine("Math 類別完整名稱: {0}", my2Type.FullName);
Console.WriteLine();
MethodInfo[] myMIS = myType.GetMethods();
Console.WriteLine("================================================");
Console.WriteLine("以下列出所有 Math 類所提供的方法名稱: ");
foreach (MethodInfo myMI in myMIS)
{
Console.WriteLine("{0} ", myMI);
}
MethodInfo[] my2MIS = my2Type.GetMethods();
Console.WriteLine("================================================");
Console.WriteLine("以下列出所有 Math2 類所提供的方法名稱: ");
foreach (MethodInfo myMI2 in my2MIS)
{
Console.WriteLine("{0} ", myMI2);
}
int radius = 3;
Console.WriteLine("================================================");
Console.WriteLine("Area = {0}", radius * radius * Math.PI);
Console.WriteLine("The type is {0}",
(radius * radius * Math.PI).GetType()
);
Console.ReadLine();
}
}
}