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。

 

參考資料:

C# 6.0 新功能

sizeof (C# 參考)