// #pragma warning disable #nullable enable annotations // Licensed to the .NET Foundation under one or more agreements. // The .NET Foundation licenses this file to you under the MIT license. namespace System.Diagnostics.CodeAnalysis { /// /// Specifies that the method or property will ensure that the listed field and property /// members have not-null values when returning with the specified return value condition. /// [global::System.AttributeUsage( global::System.AttributeTargets.Method | global::System.AttributeTargets.Property, Inherited = false, AllowMultiple = true)] [global::System.Diagnostics.CodeAnalysis.ExcludeFromCodeCoverage] public sealed class MemberNotNullWhenAttribute : global::System.Attribute { /// /// Initializes the attribute with the specified return value condition and a field or property member. /// /// The return value condition. If the method returns this value, the associated parameter will not be null. /// The field or property member that is promised to be not-null. public MemberNotNullWhenAttribute(bool returnValue, string member) { ReturnValue = returnValue; Members = new[] { member }; } /// /// Initializes the attribute with the specified return value condition and list of field and property members. /// /// The return value condition. If the method returns this value, the associated parameter will not be null. /// The list of field and property members that are promised to be not-null. public MemberNotNullWhenAttribute(bool returnValue, params string[] members) { ReturnValue = returnValue; Members = members; } /// /// Gets the return value condition. /// public bool ReturnValue { get; } /// /// Gets field or property member names. /// public string[] Members { get; } } }