Class PhoneNumber (2.17.0)
Stay organized with collections
Save and categorize content based on your preferences.
Version latestkeyboard_arrow_down
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()
PhoneNumber(PhoneNumber)
public PhoneNumber(PhoneNumber other)
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; }
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; }
Parser
public static MessageParser<PhoneNumber> Parser { get; }
ShortCode
public PhoneNumber.Types.ShortCode ShortCode { get; set; }
A short code.
Reference(s):
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()
Clone()
public PhoneNumber Clone()
Equals(PhoneNumber)
public bool Equals(PhoneNumber other)
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
public void MergeFrom(CodedInputStream input)
MergeFrom(PhoneNumber)
public void MergeFrom(PhoneNumber other)
ToString()
public override string ToString()
Returns
Type
Description
string
Overrides
WriteTo(CodedOutputStream)
public void WriteTo(CodedOutputStream output)
Except as otherwise noted, the content of this page is licensed under the Creative Commons Attribution 4.0 License , and code samples are licensed under the Apache 2.0 License . For details, see the Google Developers Site Policies . Java is a registered trademark of Oracle and/or its affiliates.
Last updated 2026-03-09 UTC.
[null,null,["Last updated 2026-03-09 UTC."],[],[]]