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
NameDescription
otherPhoneNumber

Fields

E164NumberFieldNumber

public const int E164NumberFieldNumber = 1

Field number for the "e164_number" field.

Field Value
TypeDescription
int

ExtensionFieldNumber

public const int ExtensionFieldNumber = 3

Field number for the "extension" field.

Field Value
TypeDescription
int

ShortCodeFieldNumber

public const int ShortCodeFieldNumber = 2

Field number for the "short_code" field.

Field Value
TypeDescription
int

Properties

Descriptor

public static MessageDescriptor Descriptor { get; }
Property Value
TypeDescription
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
TypeDescription
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
TypeDescription
string

HasE164Number

public bool HasE164Number { get; }

Gets whether the "e164_number" field is set

Property Value
TypeDescription
bool

KindCase

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

Parser

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

ShortCode

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

A short code.

Reference(s):

Property Value
TypeDescription
PhoneNumberTypesShortCode

Methods

CalculateSize()

public int CalculateSize()
Returns
TypeDescription
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
TypeDescription
PhoneNumber

Equals(PhoneNumber)

public bool Equals(PhoneNumber other)
Parameter
NameDescription
otherPhoneNumber
Returns
TypeDescription
bool

Equals(object)

public override bool Equals(object other)
Parameter
NameDescription
otherobject
Returns
TypeDescription
bool
Overrides

GetHashCode()

public override int GetHashCode()
Returns
TypeDescription
int
Overrides

MergeFrom(CodedInputStream)

public void MergeFrom(CodedInputStream input)
Parameter
NameDescription
inputCodedInputStream

MergeFrom(PhoneNumber)

public void MergeFrom(PhoneNumber other)
Parameter
NameDescription
otherPhoneNumber

ToString()

public override string ToString()
Returns
TypeDescription
string
Overrides

WriteTo(CodedOutputStream)

public void WriteTo(CodedOutputStream output)
Parameter
NameDescription
outputCodedOutputStream