public sealed class EnumDescriptorProto.Types.EnumReservedRange : IMessage<EnumDescriptorProto.Types.EnumReservedRange>, IEquatable<EnumDescriptorProto.Types.EnumReservedRange>, IDeepCloneable<EnumDescriptorProto.Types.EnumReservedRange>, IBufferMessage, IMessage
Range of reserved numeric values. Reserved values may not be used by
entries in the same enum. Reserved ranges may not overlap.
Note that this is distinct from DescriptorProto.ReservedRange in that it
is inclusive such that it can appropriately represent the entire int32
domain.
[[["Easy to understand","easyToUnderstand","thumb-up"],["Solved my problem","solvedMyProblem","thumb-up"],["Other","otherUp","thumb-up"]],[["Hard to understand","hardToUnderstand","thumb-down"],["Incorrect information or sample code","incorrectInformationOrSampleCode","thumb-down"],["Missing the information/samples I need","missingTheInformationSamplesINeed","thumb-down"],["Other","otherDown","thumb-down"]],["Last updated 2025-08-07 UTC."],[[["\u003cp\u003eThe \u003ccode\u003eEnumReservedRange\u003c/code\u003e class defines a range of reserved numeric values within an enum, preventing their use by other entries in the same enum, and ensuring reserved ranges do not overlap.\u003c/p\u003e\n"],["\u003cp\u003eThis class implements multiple interfaces such as \u003ccode\u003eIMessage\u003c/code\u003e, \u003ccode\u003eIEquatable\u003c/code\u003e, \u003ccode\u003eIDeepCloneable\u003c/code\u003e, and \u003ccode\u003eIBufferMessage\u003c/code\u003e, allowing it to be used in various contexts within the Google.Protobuf library.\u003c/p\u003e\n"],["\u003cp\u003eIt includes properties \u003ccode\u003eStart\u003c/code\u003e and \u003ccode\u003eEnd\u003c/code\u003e, representing the inclusive start and end points of the reserved range, along with corresponding \u003ccode\u003eHasStart\u003c/code\u003e and \u003ccode\u003eHasEnd\u003c/code\u003e properties to check if those fields are set.\u003c/p\u003e\n"],["\u003cp\u003eThe class provides methods for merging data from different sources (\u003ccode\u003eMergeFrom\u003c/code\u003e), deep cloning (\u003ccode\u003eClone\u003c/code\u003e), calculating size (\u003ccode\u003eCalculateSize\u003c/code\u003e), and clearing the values for the \u003ccode\u003eStart\u003c/code\u003e and \u003ccode\u003eEnd\u003c/code\u003e fields (\u003ccode\u003eClearStart\u003c/code\u003e, \u003ccode\u003eClearEnd\u003c/code\u003e).\u003c/p\u003e\n"],["\u003cp\u003eThe \u003ccode\u003eEnumReservedRange\u003c/code\u003e class is a sealed class derived from \u003ccode\u003eobject\u003c/code\u003e and is part of the \u003ccode\u003eGoogle.Protobuf.Reflection\u003c/code\u003e namespace, found within the \u003ccode\u003eGoogle.Protobuf.dll\u003c/code\u003e assembly.\u003c/p\u003e\n"]]],[],null,["# Class EnumDescriptorProto.Types.EnumReservedRange (3.27.1)\n\nVersion latestkeyboard_arrow_down\n\n- [3.27.1 (latest)](/dotnet/docs/reference/Google.Protobuf/latest/Google.Protobuf.Reflection.EnumDescriptorProto.Types.EnumReservedRange)\n- [3.23.0](/dotnet/docs/reference/Google.Protobuf/3.23.0/Google.Protobuf.Reflection.EnumDescriptorProto.Types.EnumReservedRange)\n- [3.15.8](/dotnet/docs/reference/Google.Protobuf/3.15.8/Google.Protobuf.Reflection.EnumDescriptorProto.Types.EnumReservedRange) \n\n public sealed class EnumDescriptorProto.Types.EnumReservedRange : IMessage\u003cEnumDescriptorProto.Types.EnumReservedRange\u003e, IEquatable\u003cEnumDescriptorProto.Types.EnumReservedRange\u003e, IDeepCloneable\u003cEnumDescriptorProto.Types.EnumReservedRange\u003e, IBufferMessage, IMessage\n\nRange of reserved numeric values. Reserved values may not be used by\nentries in the same enum. Reserved ranges may not overlap.\n\nNote that this is distinct from DescriptorProto.ReservedRange in that it\nis inclusive such that it can appropriately represent the entire int32\ndomain. \n\nInheritance\n-----------\n\n[object](https://learn.microsoft.com/dotnet/api/system.object) \\\u003e EnumDescriptorProto.Types.EnumReservedRange \n\nImplements\n----------\n\n[IMessage](/dotnet/docs/reference/Google.Protobuf/latest/Google.Protobuf.IMessage-1)[EnumDescriptorProto](/dotnet/docs/reference/Google.Protobuf/latest/Google.Protobuf.Reflection.EnumDescriptorProto)[Types](/dotnet/docs/reference/Google.Protobuf/latest/Google.Protobuf.Reflection.EnumDescriptorProto.Types)[EnumReservedRange](/dotnet/docs/reference/Google.Protobuf/latest/Google.Protobuf.Reflection.EnumDescriptorProto.Types.EnumReservedRange), [IEquatable](https://learn.microsoft.com/dotnet/api/system.iequatable-1)[EnumDescriptorProto](/dotnet/docs/reference/Google.Protobuf/latest/Google.Protobuf.Reflection.EnumDescriptorProto)[Types](/dotnet/docs/reference/Google.Protobuf/latest/Google.Protobuf.Reflection.EnumDescriptorProto.Types)[EnumReservedRange](/dotnet/docs/reference/Google.Protobuf/latest/Google.Protobuf.Reflection.EnumDescriptorProto.Types.EnumReservedRange), [IDeepCloneable](/dotnet/docs/reference/Google.Protobuf/latest/Google.Protobuf.IDeepCloneable-1)[EnumDescriptorProto](/dotnet/docs/reference/Google.Protobuf/latest/Google.Protobuf.Reflection.EnumDescriptorProto)[Types](/dotnet/docs/reference/Google.Protobuf/latest/Google.Protobuf.Reflection.EnumDescriptorProto.Types)[EnumReservedRange](/dotnet/docs/reference/Google.Protobuf/latest/Google.Protobuf.Reflection.EnumDescriptorProto.Types.EnumReservedRange), [IBufferMessage](/dotnet/docs/reference/Google.Protobuf/latest/Google.Protobuf.IBufferMessage), [IMessage](/dotnet/docs/reference/Google.Protobuf/latest/Google.Protobuf.IMessage) \n\nInherited Members\n-----------------\n\n[object.Equals(object, object)](https://learn.microsoft.com/dotnet/api/system.object.equals#system-object-equals(system-object-system-object)) \n[object.GetType()](https://learn.microsoft.com/dotnet/api/system.object.gettype) \n[object.ReferenceEquals(object, object)](https://learn.microsoft.com/dotnet/api/system.object.referenceequals)\n\nNamespace\n---------\n\n[Google.Protobuf.Reflection](/dotnet/docs/reference/Google.Protobuf/latest/Google.Protobuf.Reflection)\n\nAssembly\n--------\n\nGoogle.Protobuf.dll\n\nConstructors\n------------\n\n### EnumReservedRange()\n\n public EnumReservedRange()\n\n### EnumReservedRange(EnumReservedRange)\n\n public EnumReservedRange(EnumDescriptorProto.Types.EnumReservedRange other)\n\nFields\n------\n\n### EndFieldNumber\n\n public const int EndFieldNumber = 2\n\nField number for the \"end\" field.\n\n### StartFieldNumber\n\n public const int StartFieldNumber = 1\n\nField number for the \"start\" field.\n\nProperties\n----------\n\n### Descriptor\n\n public static MessageDescriptor Descriptor { get; }\n\n### End\n\n public int End { get; set; }\n\nInclusive.\n\n### HasEnd\n\n public bool HasEnd { get; }\n\nGets whether the \"end\" field is set\n\n### HasStart\n\n public bool HasStart { get; }\n\nGets whether the \"start\" field is set\n\n### Parser\n\n public static MessageParser\u003cEnumDescriptorProto.Types.EnumReservedRange\u003e Parser { get; }\n\n### Start\n\n public int Start { get; set; }\n\nInclusive.\n\nMethods\n-------\n\n### CalculateSize()\n\n public int CalculateSize()\n\nCalculates the size of this message in Protocol Buffer wire format, in bytes.\n\n### ClearEnd()\n\n public void ClearEnd()\n\nClears the value of the \"end\" field\n\n### ClearStart()\n\n public void ClearStart()\n\nClears the value of the \"start\" field\n\n### Clone()\n\n public EnumDescriptorProto.Types.EnumReservedRange Clone()\n\nCreates a deep clone of this object.\n\n### Equals(EnumReservedRange)\n\n public bool Equals(EnumDescriptorProto.Types.EnumReservedRange other)\n\n### Equals(object)\n\n public override bool Equals(object other)\n\n**Overrides** \n[object.Equals(object)](https://learn.microsoft.com/dotnet/api/system.object.equals#system-object-equals(system-object))\n\n### GetHashCode()\n\n public override int GetHashCode()\n\n**Overrides** \n[object.GetHashCode()](https://learn.microsoft.com/dotnet/api/system.object.gethashcode)\n\n### MergeFrom(CodedInputStream)\n\n public void MergeFrom(CodedInputStream input)\n\nMerges the data from the specified coded input stream with the current message.\n\n**Remarks** \nSee the user guide for precise merge semantics.\n\n### MergeFrom(EnumReservedRange)\n\n public void MergeFrom(EnumDescriptorProto.Types.EnumReservedRange other)\n\nMerges the given message into this one.\n\n**Remarks** \nSee the user guide for precise merge semantics.\n\n### ToString()\n\n public override string ToString()\n\n**Overrides** \n[object.ToString()](https://learn.microsoft.com/dotnet/api/system.object.tostring)\n\n### WriteTo(CodedOutputStream)\n\n public void WriteTo(CodedOutputStream output)\n\nWrites the data to the given coded output stream.\n\nExtension Methods\n-----------------\n\n[MessageExtensions.IsInitialized(IMessage)](/dotnet/docs/reference/Google.Protobuf/latest/Google.Protobuf.MessageExtensions#Google_Protobuf_MessageExtensions_IsInitialized_Google_Protobuf_IMessage_) \n[MessageExtensions.MergeDelimitedFrom(IMessage, Stream)](/dotnet/docs/reference/Google.Protobuf/latest/Google.Protobuf.MessageExtensions#Google_Protobuf_MessageExtensions_MergeDelimitedFrom_Google_Protobuf_IMessage_System_IO_Stream_) \n[MessageExtensions.MergeFrom(IMessage, ByteString)](/dotnet/docs/reference/Google.Protobuf/latest/Google.Protobuf.MessageExtensions#Google_Protobuf_MessageExtensions_MergeFrom_Google_Protobuf_IMessage_Google_Protobuf_ByteString_) \n[MessageExtensions.MergeFrom(IMessage, ReadOnlySequence\\\u003cbyte\\\u003e)](/dotnet/docs/reference/Google.Protobuf/latest/Google.Protobuf.MessageExtensions#Google_Protobuf_MessageExtensions_MergeFrom_Google_Protobuf_IMessage_System_Buffers_ReadOnlySequence_System_Byte__) \n[MessageExtensions.MergeFrom(IMessage, byte\\[\\])](/dotnet/docs/reference/Google.Protobuf/latest/Google.Protobuf.MessageExtensions#Google_Protobuf_MessageExtensions_MergeFrom_Google_Protobuf_IMessage_System_Byte___) \n[MessageExtensions.MergeFrom(IMessage, byte\\[\\], int, int)](/dotnet/docs/reference/Google.Protobuf/latest/Google.Protobuf.MessageExtensions#Google_Protobuf_MessageExtensions_MergeFrom_Google_Protobuf_IMessage_System_Byte___System_Int32_System_Int32_) \n[MessageExtensions.MergeFrom(IMessage, Stream)](/dotnet/docs/reference/Google.Protobuf/latest/Google.Protobuf.MessageExtensions#Google_Protobuf_MessageExtensions_MergeFrom_Google_Protobuf_IMessage_System_IO_Stream_) \n[MessageExtensions.MergeFrom(IMessage, ReadOnlySpan\\\u003cbyte\\\u003e)](/dotnet/docs/reference/Google.Protobuf/latest/Google.Protobuf.MessageExtensions#Google_Protobuf_MessageExtensions_MergeFrom_Google_Protobuf_IMessage_System_ReadOnlySpan_System_Byte__) \n[MessageExtensions.ToByteArray(IMessage)](/dotnet/docs/reference/Google.Protobuf/latest/Google.Protobuf.MessageExtensions#Google_Protobuf_MessageExtensions_ToByteArray_Google_Protobuf_IMessage_) \n[MessageExtensions.ToByteString(IMessage)](/dotnet/docs/reference/Google.Protobuf/latest/Google.Protobuf.MessageExtensions#Google_Protobuf_MessageExtensions_ToByteString_Google_Protobuf_IMessage_) \n[MessageExtensions.WriteDelimitedTo(IMessage, Stream)](/dotnet/docs/reference/Google.Protobuf/latest/Google.Protobuf.MessageExtensions#Google_Protobuf_MessageExtensions_WriteDelimitedTo_Google_Protobuf_IMessage_System_IO_Stream_) \n[MessageExtensions.WriteTo(IMessage, IBufferWriter\\\u003cbyte\\\u003e)](/dotnet/docs/reference/Google.Protobuf/latest/Google.Protobuf.MessageExtensions#Google_Protobuf_MessageExtensions_WriteTo_Google_Protobuf_IMessage_System_Buffers_IBufferWriter_System_Byte__) \n[MessageExtensions.WriteTo(IMessage, Stream)](/dotnet/docs/reference/Google.Protobuf/latest/Google.Protobuf.MessageExtensions#Google_Protobuf_MessageExtensions_WriteTo_Google_Protobuf_IMessage_System_IO_Stream_) \n[MessageExtensions.WriteTo(IMessage, Span\\\u003cbyte\\\u003e)](/dotnet/docs/reference/Google.Protobuf/latest/Google.Protobuf.MessageExtensions#Google_Protobuf_MessageExtensions_WriteTo_Google_Protobuf_IMessage_System_Span_System_Byte__)"]]