System.Uri.GetRelativeSerializationString C# (CSharp) Method

GetRelativeSerializationString() private method

private GetRelativeSerializationString ( UriFormat format ) : string
format UriFormat
return string
        private unsafe string GetRelativeSerializationString(UriFormat format)
        {
            if (format == UriFormat.UriEscaped)
            {
                if (_string.Length == 0)
                    return string.Empty;
                int position = 0;
                char[] dest = UriHelper.EscapeString(_string, 0, _string.Length, null, ref position, true,
                    c_DummyChar, c_DummyChar, '%');
                if ((object)dest == null)
                    return _string;
                return new string(dest, 0, position);
            }

            else if (format == UriFormat.Unescaped)
                return UnescapeDataString(_string);

            else if (format == UriFormat.SafeUnescaped)
            {
                if (_string.Length == 0)
                    return string.Empty;

                char[] dest = new char[_string.Length];
                int position = 0;
                dest = UriHelper.UnescapeString(_string, 0, _string.Length, dest, ref position, c_DummyChar,
                    c_DummyChar, c_DummyChar, UnescapeMode.EscapeUnescape, null, false);
                return new string(dest, 0, position);
            }
            else
                throw new ArgumentOutOfRangeException(nameof(format));
        }