/// <summary>
    /// 將變數的值轉換為字串, 如果是null則輸出預設字串
    /// </summary>
    /// <param name="obj"></param>
    /// <param name="format"></param>
    /// <param name="provider"></param>
    /// <returns></returns>
    public static string ToStringOrDefault(this object obj, string defaultString, string format = null, IFormatProvider provider = null)
    {
        dynamic castedObj = obj;

        if (format.HasValue())
        {
            return(obj.HasValue() ? castedObj.ToString(format) : defaultString);
        }

        if (provider.HasValue())
        {
            return(obj.HasValue() ? castedObj.ToString(provider) : defaultString);
        }

        if (format.HasValue() && provider.HasValue())
        {
            return(obj.HasValue() ? castedObj.ToString(format, provider) : defaultString);
        }

        return(obj.HasValue() ? castedObj.ToString() : defaultString);
    }