コガネブログ

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

【C#】指定された値をリテラル付きの文字列に変換する関数

概要

private static string ToLiteralString( object value )
{
    if ( value == null ) return "null";
    if ( value is bool boolValue ) return boolValue ? "true" : "false";
    if ( value is float floatValue ) return $"{floatValue}f";
    if ( value is long longValue ) return $"{longValue}L";
    if ( value is uint uintValue ) return $"{uintValue}u";
    if ( value is ulong ulongValue ) return $"{ulongValue}ul";
    if ( value is decimal decimalValue ) return $"{decimalValue}m";
    if ( value is char charValue ) return $"'{charValue}'";
    if ( value is string stringValue ) return $@"""{stringValue}""";
    return value.ToString();
}
Debug.Log( ToLiteralString( null ) );
Debug.Log( ToLiteralString( true ) );
Debug.Log( ToLiteralString( false ) );
Debug.Log( ToLiteralString( 1 ) );
Debug.Log( ToLiteralString( 1.1f ) );
Debug.Log( ToLiteralString( 1L ) );
Debug.Log( ToLiteralString( 1u ) );
Debug.Log( ToLiteralString( 1ul ) );
Debug.Log( ToLiteralString( 1m ) );
Debug.Log( ToLiteralString( 'P' ) );
Debug.Log( ToLiteralString( "ピカチュウ" ) );