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):
Implements
IMessagePhoneNumber, IEquatablePhoneNumber, IDeepCloneablePhoneNumber, IBufferMessage, IMessageNamespace
Google.TypeAssembly
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; }
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 |
GetHashCode()
public override int GetHashCode()
Returns | |
---|---|
Type | Description |
int |
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 |
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 |
See the user guide for precise merge semantics.
ToString()
public override string ToString()
Returns | |
---|---|
Type | Description |
string |
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. |