コガネブログ

平日更新を目標に Unity や C#、Visual Studio、ReSharper などのゲーム開発アレコレを書いていきます

【C#】Type 型で組み込み型のエイリアス名を取得できる拡張メソッド

ソースコード

using System;

public static class TypeExt
{
    public static string GetAliasName( this Type self )
    {
        switch ( self.FullName )
        {
            case "System.Boolean": return "bool";
            case "System.Byte":    return "byte";
            case "System.SByte":   return "sbyte";
            case "System.Char":    return "char";
            case "System.Decimal": return "decimal";
            case "System.Double":  return "double";
            case "System.Single":  return "float";
            case "System.Int32":   return "int";
            case "System.UInt32":  return "uint";
            case "System.Int64":   return "long";
            case "System.UInt64":  return "ulong";
            case "System.Object":  return "object";
            case "System.Int16":   return "short";
            case "System.UInt16":  return "ushort";
            case "System.String":  return "string";
            case "System.Void":    return "void";
        }

        return self.Name;
    }
}

使用例

var builder = new StringBuilder();

builder.AppendLine( typeof( bool ).GetAliasName() );    // bool
builder.AppendLine( typeof( byte ).GetAliasName() );    // byte
builder.AppendLine( typeof( char ).GetAliasName() );    // char
builder.AppendLine( typeof( decimal ).GetAliasName() ); // decimal
builder.AppendLine( typeof( short ).GetAliasName() );   // short
builder.AppendLine( typeof( int ).GetAliasName() );     // int
builder.AppendLine( typeof( long ).GetAliasName() );    // long
builder.AppendLine( typeof( object ).GetAliasName() );  // object
builder.AppendLine( typeof( sbyte ).GetAliasName() );   // sbyte
builder.AppendLine( typeof( float ).GetAliasName() );   // float
builder.AppendLine( typeof( string ).GetAliasName() );  // string
builder.AppendLine( typeof( uint ).GetAliasName() );    // uint
builder.AppendLine( typeof( ulong ).GetAliasName() );   // ulong

Debug.Log( builder );