Class PhoneNumber (2.15.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()

Calculates the size of this message in Protocol Buffer wire format, in bytes.

Returns
Type Description
int

The number of bytes required to write this message to a coded output stream.

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()

Creates a deep clone of this object.

Returns
Type Description
PhoneNumber

A deep clone of this object.

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)

Merges the data from the specified coded input stream with the current message.

Parameter
Name Description
input CodedInputStream
Remarks

See the user guide for precise merge semantics.

MergeFrom(PhoneNumber)

public void MergeFrom(PhoneNumber other)

Merges the given message into this one.

Parameter
Name Description
other PhoneNumber
Remarks

See the user guide for precise merge semantics.

ToString()

public override string ToString()
Returns
Type Description
string
Overrides

WriteTo(CodedOutputStream)

public void WriteTo(CodedOutputStream output)

Writes the data to the given coded output stream.

Parameter
Name Description
output CodedOutputStream

Coded output stream to write the data to. Must not be null.