//
#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; }
}
}