-
Notifications
You must be signed in to change notification settings - Fork 160
Expand file tree
/
Copy pathImmutableValueAttribute.cs
More file actions
34 lines (30 loc) · 1.28 KB
/
ImmutableValueAttribute.cs
File metadata and controls
34 lines (30 loc) · 1.28 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
// Copyright (c) Microsoft Corporation. All rights reserved.
// Licensed under the MIT license.
using System;
namespace Microsoft.ClearScript
{
/// <summary>
/// Specifies that instances of the target struct are immutable.
/// </summary>
/// <remarks>
/// When this attribute is applied to a struct, ClearScript exposes the same object reference
/// for all instances of the struct that satisfy equality comparison, giving script code the
/// ability to use native equality operators to compare the exposed objects. This behavior is
/// also enabled automatically for all enums, <c>readonly</c> structs, numeric types,
/// <c><see cref="DateTime"/></c>, <c><see cref="DateTimeOffset"/></c>,
/// <c><see cref="TimeSpan"/></c>, and <c><see cref="Guid"></see></c>.
/// </remarks>
[AttributeUsage(AttributeTargets.Struct)]
public sealed class ImmutableValueAttribute : Attribute
{
// ReSharper disable EmptyConstructor
/// <summary>
/// Initializes a new <c><see cref="ImmutableValueAttribute"/></c> instance.
/// </summary>
public ImmutableValueAttribute()
{
// the help file builder (SHFB) insists on an empty constructor here
}
// ReSharper restore EmptyConstructor
}
}