public sealed class Value : IMessage<Value>, IEquatable<Value>, IDeepCloneable<Value>, IBufferMessage, IMessage
Reference documentation and code samples for the Google Bigtable v2 API class Value.
Value represents a dynamically typed value.
The typed fields in Value are used as a transport encoding for the actual
value (which may be of a more complex type). See the documentation of the
Type message for more details.
Represents a typed value transported as a sequence of values.
To differentiate between Struct, Array, and Map, the outermost
Value must provide an explicit type on write. This type will
apply recursively to the nested Struct fields, Array elements,
or Map key/value pairs, which must not supply their own type.
The verified Type of this Value, if it cannot be inferred.
Read results will never specify the encoding for type since the value
will already have been decoded by the server. Furthermore, the type will
be omitted entirely if it can be inferred from a previous response. The
exact semantics for inferring type will vary, and are therefore
documented separately for each read method.
When using composite types (Struct, Array, Map) only the outermost Value
will specify the type. This top-level type will define the types for
any nested Struct' fields,Arrayelements, orMapkey/value pairs.
If a nestedValueprovides atype` on write, the request will be
rejected with INVALID_ARGUMENT.
[[["Easy to understand","easyToUnderstand","thumb-up"],["Solved my problem","solvedMyProblem","thumb-up"],["Other","otherUp","thumb-up"]],[["Missing the information I need","missingTheInformationINeed","thumb-down"],["Too complicated / too many steps","tooComplicatedTooManySteps","thumb-down"],["Out of date","outOfDate","thumb-down"],["Samples / code issue","samplesCodeIssue","thumb-down"],["Other","otherDown","thumb-down"]],["Last updated 2025-08-12 UTC."],[[["\u003cp\u003eThe latest version of the Google.Cloud.Bigtable.V2 API is 3.17.0, with previous versions available ranging from 3.16.0 down to 2.2.0.\u003c/p\u003e\n"],["\u003cp\u003eThe \u003ccode\u003eValue\u003c/code\u003e class in the Google Bigtable v2 API represents a dynamically typed value and is used as a transport encoding for the actual value, which can be of a more complex type.\u003c/p\u003e\n"],["\u003cp\u003eThe \u003ccode\u003eValue\u003c/code\u003e class inherits from \u003ccode\u003eobject\u003c/code\u003e and implements interfaces such as \u003ccode\u003eIMessage\u003c/code\u003e, \u003ccode\u003eIEquatable\u003c/code\u003e, \u003ccode\u003eIDeepCloneable\u003c/code\u003e, and \u003ccode\u003eIBufferMessage\u003c/code\u003e.\u003c/p\u003e\n"],["\u003cp\u003eThe \u003ccode\u003eValue\u003c/code\u003e class offers various properties to handle different data types, such as \u003ccode\u003eArrayValue\u003c/code\u003e, \u003ccode\u003eBoolValue\u003c/code\u003e, \u003ccode\u003eBytesValue\u003c/code\u003e, \u003ccode\u003eDateValue\u003c/code\u003e, \u003ccode\u003eFloatValue\u003c/code\u003e, \u003ccode\u003eIntValue\u003c/code\u003e, \u003ccode\u003eStringValue\u003c/code\u003e, and \u003ccode\u003eTimestampValue\u003c/code\u003e, as well as properties like \u003ccode\u003eHasBoolValue\u003c/code\u003e, \u003ccode\u003eHasFloatValue\u003c/code\u003e that can be used to check if the fields are set.\u003c/p\u003e\n"],["\u003cp\u003eThe \u003ccode\u003eKindCase\u003c/code\u003e property indicates which type of value is currently being stored, and there are also raw value options such as \u003ccode\u003eRawTimestampMicros\u003c/code\u003e and \u003ccode\u003eRawValue\u003c/code\u003e for handling data without type information.\u003c/p\u003e\n"]]],[],null,["# Google Bigtable v2 API - Class Value (3.23.0)\n\nVersion latestkeyboard_arrow_down\n\n- [3.23.0 (latest)](/dotnet/docs/reference/Google.Cloud.Bigtable.V2/latest/Google.Cloud.Bigtable.V2.Value)\n- [3.22.0](/dotnet/docs/reference/Google.Cloud.Bigtable.V2/3.22.0/Google.Cloud.Bigtable.V2.Value)\n- [3.21.0](/dotnet/docs/reference/Google.Cloud.Bigtable.V2/3.21.0/Google.Cloud.Bigtable.V2.Value)\n- [3.20.0](/dotnet/docs/reference/Google.Cloud.Bigtable.V2/3.20.0/Google.Cloud.Bigtable.V2.Value)\n- [3.19.0](/dotnet/docs/reference/Google.Cloud.Bigtable.V2/3.19.0/Google.Cloud.Bigtable.V2.Value)\n- [3.18.0](/dotnet/docs/reference/Google.Cloud.Bigtable.V2/3.18.0/Google.Cloud.Bigtable.V2.Value)\n- [3.17.0](/dotnet/docs/reference/Google.Cloud.Bigtable.V2/3.17.0/Google.Cloud.Bigtable.V2.Value)\n- [3.16.0](/dotnet/docs/reference/Google.Cloud.Bigtable.V2/3.16.0/Google.Cloud.Bigtable.V2.Value)\n- [3.15.0](/dotnet/docs/reference/Google.Cloud.Bigtable.V2/3.15.0/Google.Cloud.Bigtable.V2.Value)\n- [3.14.0](/dotnet/docs/reference/Google.Cloud.Bigtable.V2/3.14.0/Google.Cloud.Bigtable.V2.Value)\n- [3.13.0](/dotnet/docs/reference/Google.Cloud.Bigtable.V2/3.13.0/Google.Cloud.Bigtable.V2.Value)\n- [3.12.0](/dotnet/docs/reference/Google.Cloud.Bigtable.V2/3.12.0/Google.Cloud.Bigtable.V2.Value)\n- [3.11.0](/dotnet/docs/reference/Google.Cloud.Bigtable.V2/3.11.0/Google.Cloud.Bigtable.V2.Value)\n- [3.10.0](/dotnet/docs/reference/Google.Cloud.Bigtable.V2/3.10.0/Google.Cloud.Bigtable.V2.Value)\n- [3.9.0](/dotnet/docs/reference/Google.Cloud.Bigtable.V2/3.9.0/Google.Cloud.Bigtable.V2.Value)\n- [3.8.0](/dotnet/docs/reference/Google.Cloud.Bigtable.V2/3.8.0/Google.Cloud.Bigtable.V2.Value)\n- [3.7.0](/dotnet/docs/reference/Google.Cloud.Bigtable.V2/3.7.0/Google.Cloud.Bigtable.V2.Value)\n- [3.6.0](/dotnet/docs/reference/Google.Cloud.Bigtable.V2/3.6.0/Google.Cloud.Bigtable.V2.Value)\n- [3.5.0](/dotnet/docs/reference/Google.Cloud.Bigtable.V2/3.5.0/Google.Cloud.Bigtable.V2.Value)\n- [3.4.0](/dotnet/docs/reference/Google.Cloud.Bigtable.V2/3.4.0/Google.Cloud.Bigtable.V2.Value)\n- [3.3.0](/dotnet/docs/reference/Google.Cloud.Bigtable.V2/3.3.0/Google.Cloud.Bigtable.V2.Value)\n- [3.2.0](/dotnet/docs/reference/Google.Cloud.Bigtable.V2/3.2.0/Google.Cloud.Bigtable.V2.Value)\n- [3.1.0](/dotnet/docs/reference/Google.Cloud.Bigtable.V2/3.1.0/Google.Cloud.Bigtable.V2.Value)\n- [3.0.0](/dotnet/docs/reference/Google.Cloud.Bigtable.V2/3.0.0/Google.Cloud.Bigtable.V2.Value)\n- [2.6.0](/dotnet/docs/reference/Google.Cloud.Bigtable.V2/2.6.0/Google.Cloud.Bigtable.V2.Value)\n- [2.5.0](/dotnet/docs/reference/Google.Cloud.Bigtable.V2/2.5.0/Google.Cloud.Bigtable.V2.Value)\n- [2.4.0](/dotnet/docs/reference/Google.Cloud.Bigtable.V2/2.4.0/Google.Cloud.Bigtable.V2.Value)\n- [2.3.0](/dotnet/docs/reference/Google.Cloud.Bigtable.V2/2.3.0/Google.Cloud.Bigtable.V2.Value)\n- [2.2.0](/dotnet/docs/reference/Google.Cloud.Bigtable.V2/2.2.0/Google.Cloud.Bigtable.V2.Value) \n\n public sealed class Value : IMessage\u003cValue\u003e, IEquatable\u003cValue\u003e, IDeepCloneable\u003cValue\u003e, IBufferMessage, IMessage\n\nReference documentation and code samples for the Google Bigtable v2 API class Value.\n\n`Value` represents a dynamically typed value.\nThe typed fields in `Value` are used as a transport encoding for the actual\nvalue (which may be of a more complex type). See the documentation of the\n`Type` message for more details. \n\nInheritance\n-----------\n\n[object](https://learn.microsoft.com/dotnet/api/system.object) \\\u003e Value \n\nImplements\n----------\n\n[IMessage](https://cloud.google.com/dotnet/docs/reference/Google.Protobuf/latest/Google.Protobuf.IMessage-1.html)[Value](/dotnet/docs/reference/Google.Cloud.Bigtable.V2/latest/Google.Cloud.Bigtable.V2.Value), [IEquatable](https://learn.microsoft.com/dotnet/api/system.iequatable-1)[Value](/dotnet/docs/reference/Google.Cloud.Bigtable.V2/latest/Google.Cloud.Bigtable.V2.Value), [IDeepCloneable](https://cloud.google.com/dotnet/docs/reference/Google.Protobuf/latest/Google.Protobuf.IDeepCloneable-1.html)[Value](/dotnet/docs/reference/Google.Cloud.Bigtable.V2/latest/Google.Cloud.Bigtable.V2.Value), [IBufferMessage](https://cloud.google.com/dotnet/docs/reference/Google.Protobuf/latest/Google.Protobuf.IBufferMessage.html), [IMessage](https://cloud.google.com/dotnet/docs/reference/Google.Protobuf/latest/Google.Protobuf.IMessage.html) \n\nInherited Members\n-----------------\n\n[object.GetHashCode()](https://learn.microsoft.com/dotnet/api/system.object.gethashcode) \n[object.GetType()](https://learn.microsoft.com/dotnet/api/system.object.gettype) \n[object.ToString()](https://learn.microsoft.com/dotnet/api/system.object.tostring)\n\nNamespace\n---------\n\n[Google.Cloud.Bigtable.V2](/dotnet/docs/reference/Google.Cloud.Bigtable.V2/latest/Google.Cloud.Bigtable.V2)\n\nAssembly\n--------\n\nGoogle.Cloud.Bigtable.V2.dll\n\nConstructors\n------------\n\n### Value()\n\n public Value()\n\n### Value(Value)\n\n public Value(Value other)\n\nProperties\n----------\n\n### ArrayValue\n\n public ArrayValue ArrayValue { get; set; }\n\nRepresents a typed value transported as a sequence of values.\nTo differentiate between `Struct`, `Array`, and `Map`, the outermost\n`Value` must provide an explicit `type` on write. This `type` will\napply recursively to the nested `Struct` fields, `Array` elements,\nor `Map` key/value pairs, which *must not* supply their own `type`.\n\n### BoolValue\n\n public bool BoolValue { get; set; }\n\nRepresents a typed value transported as a boolean.\n\n### BytesValue\n\n public ByteString BytesValue { get; set; }\n\nRepresents a typed value transported as a byte sequence.\n\n### DateValue\n\n public Date DateValue { get; set; }\n\nRepresents a typed value transported as a date.\n\n### FloatValue\n\n public double FloatValue { get; set; }\n\nRepresents a typed value transported as a floating point number.\nDoes not support NaN or infinities.\n\n### HasBoolValue\n\n public bool HasBoolValue { get; }\n\nGets whether the \"bool_value\" field is set\n\n### HasBytesValue\n\n public bool HasBytesValue { get; }\n\nGets whether the \"bytes_value\" field is set\n\n### HasFloatValue\n\n public bool HasFloatValue { get; }\n\nGets whether the \"float_value\" field is set\n\n### HasIntValue\n\n public bool HasIntValue { get; }\n\nGets whether the \"int_value\" field is set\n\n### HasRawTimestampMicros\n\n public bool HasRawTimestampMicros { get; }\n\nGets whether the \"raw_timestamp_micros\" field is set\n\n### HasRawValue\n\n public bool HasRawValue { get; }\n\nGets whether the \"raw_value\" field is set\n\n### HasStringValue\n\n public bool HasStringValue { get; }\n\nGets whether the \"string_value\" field is set\n\n### IntValue\n\n public long IntValue { get; set; }\n\nRepresents a typed value transported as an integer.\n\n### KindCase\n\n public Value.KindOneofCase KindCase { get; }\n\n### RawTimestampMicros\n\n public long RawTimestampMicros { get; set; }\n\nRepresents a raw cell timestamp with no type information.\nThe `type` field must be omitted.\n\n### RawValue\n\n public ByteString RawValue { get; set; }\n\nRepresents a raw byte sequence with no type information.\nThe `type` field must be omitted.\n\n### StringValue\n\n public string StringValue { get; set; }\n\nRepresents a typed value transported as a string.\n\n### TimestampValue\n\n public Timestamp TimestampValue { get; set; }\n\nRepresents a typed value transported as a timestamp.\n\n### Type\n\n public Type Type { get; set; }\n\nThe verified `Type` of this `Value`, if it cannot be inferred.\n\nRead results will never specify the encoding for `type` since the value\nwill already have been decoded by the server. Furthermore, the `type` will\nbe omitted entirely if it can be inferred from a previous response. The\nexact semantics for inferring `type` will vary, and are therefore\ndocumented separately for each read method.\n\nWhen using composite types (Struct, Array, Map) only the outermost `Value`\nwill specify the `type`. This top-level `type` will define the types for\nany nested `Struct' fields,`Array`elements, or`Map`key/value pairs.\nIf a nested`Value`provides a`type\\` on write, the request will be\nrejected with INVALID_ARGUMENT."]]