typeof、nameof、sizeof的用法
這些都是較直覺的用法,故只列範示,說明的部份會比較少
一、nameof
using System;
namespace ConsoleApp1
{
class Program
{
static string db;
static void Main(string[] args)
{
int aDigtal = 100;
Console.WriteLine(nameof(db));
Console.WriteLine(nameof(aDigtal));
Console.WriteLine(nameof(GetName));
Console.WriteLine(nameof(Stages.審核));
}
private static string GetName()
{
return "tom";
}
}
public enum Stages
{
提案,
審核,
執行,
驗收,
結案
}
}
執行畫面
nameof 運算子功能是用來回傳「變數」、「屬性」、「方法」、「列舉」的名稱。
二、typeof
using System;
namespace ConsoleApp1
{
class Program
{
static void Main(string[] args)
{
System.Type type = typeof(int);
Console.WriteLine(type.ToString());
type = typeof(string);
Console.WriteLine(type.ToString());
type = typeof(Program);
Console.WriteLine(type.ToString());
int i = 0;
type = i.GetType();
Console.WriteLine(type.ToString());
Console.ReadKey();
}
}
}
執行結果為
說明:
使用 typeof 運算式可以取得一個類型的 System.Type 物件。
若要取得運算式的執行階段類型,您可以使用 GetType方法。
三、sizeof
using System;
namespace ConsoleApp1
{
class Program
{
static void Main(string[] args)
{
Console.WriteLine("sizeof(sbyte) = {0}", sizeof(sbyte));
Console.WriteLine("sizeof(byte) = {0}", sizeof(byte));
Console.WriteLine("sizeof(short) = {0}", sizeof(short));
Console.WriteLine("sizeof(ushort) = {0}", sizeof(ushort));
Console.WriteLine("sizeof(uint) = {0}", sizeof(uint));
Console.WriteLine("sizeof(long) = {0}", sizeof(long));
Console.WriteLine("sizeof(ulong) = {0}", sizeof(ulong));
Console.WriteLine("sizeof(char) = {0}", sizeof(char));
Console.WriteLine("sizeof(float) = {0}", sizeof(float));
Console.WriteLine("sizeof(double) = {0}", sizeof(double));
Console.WriteLine("sizeof(decimal) = {0}", sizeof(decimal));
Console.WriteLine("sizeof(bool) = {0}", sizeof(bool));
Console.ReadKey();
}
}
}
執行結果為
說明:
sizeof 運算子是用來取得一個類型在記憶體中會佔了幾 byte。
參考資料: