Ескертпе
Бұл бетке кіру үшін қатынас шегін айқындау қажет. Жүйеге кіруді немесе каталогтарды өзгертуді байқап көруге болады.
Бұл бетке кіру үшін қатынас шегін айқындау қажет. Каталогтарды өзгертуді байқап көруге болады.
Заметка
Эта статья является спецификацией компонентов. Спецификация служит проектным документом для функции. Она включает предлагаемые изменения спецификации, а также информацию, необходимую во время дизайна и разработки функции. Эти статьи публикуются до тех пор, пока предложенные изменения спецификации не будут завершены и включены в текущую спецификацию ECMA.
Может возникнуть некоторое несоответствие между спецификацией компонентов и завершенной реализацией. Эти различия отражены в соответствующих записях собрания по проектированию языка (LDM) .
Дополнительные сведения о процессе внедрения спецификаций функций в стандарт языка C# см. в статье о спецификациях .
Сообщайте предупреждения о ссылках на типы и элементы, отмеченные System.Diagnostics.CodeAnalysis.ExperimentalAttribute.
namespace System.Diagnostics.CodeAnalysis
{
[AttributeUsage(AttributeTargets.Assembly |
AttributeTargets.Module |
AttributeTargets.Class |
AttributeTargets.Struct |
AttributeTargets.Enum |
AttributeTargets.Constructor |
AttributeTargets.Method |
AttributeTargets.Property |
AttributeTargets.Field |
AttributeTargets.Event |
AttributeTargets.Interface |
AttributeTargets.Delegate, Inherited = false)]
public sealed class ExperimentalAttribute : Attribute
{
public ExperimentalAttribute(string diagnosticId)
{
DiagnosticId = diagnosticId;
}
public string DiagnosticId { get; }
public string? UrlFormat { get; set; }
public string? Message { get; set; }
}
}
Сообщаемая диагностика
Хотя диагностика технически является предупреждением, поэтому компилятор позволяет подавлять его, он рассматривается как ошибка для создания отчетов. Это приводит к сбою сборки, если диагностика не подавляется.
Диагностика сообщается для любой ссылки на тип или элемент, который является одним из следующих:
- помечен атрибутом,
- в сборке или модуле, помеченном атрибутом,
за исключением случаев, когда ссылка возникает в элементах [Experimental], она автоматически подавляется.
Также можно отключить диагностику обычными средствами, например явным параметром компилятора или #pragma.
Например, если API помечен как [Experimental("DiagID")] или [Experimental("DiagID", UrlFormat = "https://example.org/{0}")], диагностику можно отключить с помощью #pragma warning disable DiagID.
Ошибка возникает, если идентификатор диагностики, заданный экспериментальным атрибутом, не является допустимым идентификатором C#.
Если значение свойства Message не указано, диагностическое сообщение будет специальным сообщением, в котором '{0}' является полностью квалифицированным именем типа или члена.
'{0}' is for evaluation purposes only and is subject to change or removal in future updates.
Если для свойства Message задано значение, то диагностическое сообщение становится конкретным сообщением, в котором '{0}' является полным именем типа или члена, а '{1}' представляет собой Message.
'{0}' is for evaluation purposes only and is subject to change or removal in future updates: '{1}'.
Атрибут не наследуется от базовых типов или переопределенных элементов.
Устаревшая и нерекомендуемаяAttribute
Предупреждения для [Experimental] сообщаются в [Obsolete] или [Deprecated] членах.
Предупреждения и ошибки для [Obsolete] и [Deprecated] сообщаются членами [Experimental].
Но предупреждения и ошибки для [Obsolete] и [Deprecated] сообщаются вместо [Experimental], если существует несколько атрибутов.
C# feature specifications