namespace System.Runtime.CompilerServices { public static class IsExternalInit { }
// // Summary: // Specifies that a type has required members or that a member is required. [AttributeUsage(AttributeTargets.Class | AttributeTargets.Struct | AttributeTargets.Property | AttributeTargets.Field, AllowMultiple = false, Inherited = false)] public sealed class RequiredMemberAttribute : Attribute { // // Summary: // Initializes a System.Runtime.CompilerServices.RequiredMemberAttribute instance // with default values. public RequiredMemberAttribute() { } }
/// <summary> /// Indicates that compiler support for a particular feature is required for the location where this attribute is applied. /// </summary> [AttributeUsage(AttributeTargets.All, AllowMultiple = true, Inherited = false)] public sealed class CompilerFeatureRequiredAttribute : Attribute { public CompilerFeatureRequiredAttribute(string featureName) { FeatureName = featureName; }
/// <summary> /// The name of the compiler feature. /// </summary> public string FeatureName { get; }
/// <summary> /// If true, the compiler can choose to allow access to the location where this attribute is applied if it does not understand <see cref="FeatureName"/>. /// </summary> public bool IsOptional { get; init; }
/// <summary> /// The <see cref="FeatureName"/> used for the ref structs C# feature. /// </summary> public const string RefStructs = nameof(RefStructs);
/// <summary> /// The <see cref="FeatureName"/> used for the required members C# feature. /// </summary> public const string RequiredMembers = nameof(RequiredMembers); } }