Class PhoneNumber (2.10.0)

public sealed class PhoneNumber : IMessage<PhoneNumber>, IEquatable<PhoneNumber>, IDeepCloneable<PhoneNumber>, IBufferMessage, IMessage

An object representing a phone number, suitable as an API wire format.

This representation:

  • should not be used for locale-specific formatting of a phone number, such as "+1 (650) 253-0000 ext. 123"

  • is not designed for efficient storage

  • may not be suitable for dialing - specialized libraries (see references) should be used to parse the number for that purpose

To do something meaningful with this number, such as format it for various use-cases, convert it to an i18n.phonenumbers.PhoneNumber object first.

For instance, in Java this would be:

com.google.type.PhoneNumber wireProto = com.google.type.PhoneNumber.newBuilder().build(); com.google.i18n.phonenumbers.Phonenumber.PhoneNumber phoneNumber = PhoneNumberUtil.getInstance().parse(wireProto.getE164Number(), "ZZ"); if (!wireProto.getExtension().isEmpty()) { phoneNumber.setExtension(wireProto.getExtension()); }

Reference(s):

Inheritance

object > PhoneNumber

Namespace

Google.Type

Assembly

Google.Api.CommonProtos.dll

Constructors

PhoneNumber()

public PhoneNumber()

PhoneNumber(PhoneNumber)

public PhoneNumber(PhoneNumber other)
Parameter
Name Description
other PhoneNumber

Fields

E164NumberFieldNumber

public const int E164NumberFieldNumber = 1

Field number for the "e164_number" field.

Field Value
Type Description
int

ExtensionFieldNumber

public const int ExtensionFieldNumber = 3

Field number for the "extension" field.

Field Value
Type Description
int

ShortCodeFieldNumber

public const int ShortCodeFieldNumber = 2

Field number for the "short_code" field.

Field Value
Type Description
int

Properties

Descriptor

public static MessageDescriptor Descriptor { get; }
Property Value
Type Description
MessageDescriptor

E164Number

public string E164Number { get; set; }

The phone number, represented as a leading plus sign ('+'), followed by a phone number that uses a relaxed ITU E.164 format consisting of the country calling code (1 to 3 digits) and the subscriber number, with no additional spaces or formatting, e.g.:

  • correct: "+15552220123"
  • incorrect: "+1 (555) 222-01234 x123".

The ITU E.164 format limits the latter to 12 digits, but in practice not all countries respect that, so we relax that restriction here. National-only numbers are not allowed.

References:

Property Value
Type Description
string

Extension

public string Extension { get; set; }

The phone number's extension. The extension is not standardized in ITU recommendations, except for being defined as a series of numbers with a maximum length of 40 digits. Other than digits, some other dialing characters such as ',' (indicating a wait) or '#' may be stored here.

Note that no regions currently use extensions with short codes, so this field is normally only set in conjunction with an E.164 number. It is held separately from the E.164 number to allow for short code extensions in the future.

Property Value
Type Description
string

HasE164Number

public bool HasE164Number { get; }

Gets whether the "e164_number" field is set

Property Value
Type Description
bool

KindCase

public PhoneNumber.KindOneofCase KindCase { get; }
Property Value
Type Description
PhoneNumberKindOneofCase

Parser

public static MessageParser<PhoneNumber> Parser { get; }
Property Value
Type Description
MessageParserPhoneNumber

ShortCode

public PhoneNumber.Types.ShortCode ShortCode { get; set; }

A short code.

Reference(s):

Property Value
Type Description
PhoneNumberTypesShortCode

Methods

CalculateSize()

public int CalculateSize()
Returns
Type Description
int

ClearE164Number()

public void ClearE164Number()

Clears the value of the oneof if it's currently set to "e164_number"

ClearKind()

public void ClearKind()

Clone()

public PhoneNumber Clone()
Returns
Type Description
PhoneNumber

Equals(PhoneNumber)

public bool Equals(PhoneNumber other)
Parameter
Name Description
other PhoneNumber
Returns
Type Description
bool

Equals(object)

public override bool Equals(object other)
Parameter
Name Description
other object
Returns
Type Description
bool
Overrides

GetHashCode()

public override int GetHashCode()
Returns
Type Description
int
Overrides

MergeFrom(CodedInputStream)

public void MergeFrom(CodedInputStream input)
Parameter
Name Description
input CodedInputStream

MergeFrom(PhoneNumber)

public void MergeFrom(PhoneNumber other)
Parameter
Name Description
other PhoneNumber

ToString()

public override string ToString()
Returns
Type Description
string
Overrides

WriteTo(CodedOutputStream)

public void WriteTo(CodedOutputStream output)
Parameter
Name Description
output CodedOutputStream