C # - отключить предупреждение CS0444 - PullRequest
1 голос
/ 23 марта 2011

У меня есть это предупреждение, потому что я создал тип:

#if COMPACT_FRAMEWORK_3_5

namespace System.Diagnostics
{
    /// <summary>Determines how a class or field is displayed in the debugger variable windows.</summary>
    /// <remarks>See : http://msdn.microsoft.com/en-us/library/system.diagnostics.debuggerdisplayattribute.aspx </remarks>
    [AttributeUsage(AttributeTargets.Delegate | AttributeTargets.Field | AttributeTargets.Property | AttributeTargets.Enum | AttributeTargets.Struct | AttributeTargets.Class | AttributeTargets.Assembly, AllowMultiple = true)]
    [ComVisible(true)]
    public sealed class DebuggerDisplayAttribute : Attribute
    { /* ... */ }
}
#endif

Я создал его, потому что я нахожусь в CF.NET, и этот атрибут не существует в нем, поэтому ясоздал его, чтобы настроить мое представление отладки (я всегда отлаживаю с помощью CF.NET).

Я пытался добавить #pragma warning disable в начале и восстановить его в конце, но не работает, яВсегда было предупреждение CS0444 в VS2k8 ...

Как я могу это исправить?

Спасибо


РЕДАКТИРОВАТЬ

Я использовал его какэто:

#if COMPACT_FRAMEWORK_3_5
#pragma warning disable // 0444

namespace System.Diagnostics
{
    /// <summary>Determines how a class or field is displayed in the debugger variable windows.</summary>
    /// <remarks>See : http://msdn.microsoft.com/en-us/library/system.diagnostics.debuggerdisplayattribute.aspx </remarks>
    [AttributeUsage(AttributeTargets.Delegate | AttributeTargets.Field | AttributeTargets.Property | AttributeTargets.Enum | AttributeTargets.Struct | AttributeTargets.Class | AttributeTargets.Assembly, AllowMultiple = true)]
    [ComVisible(true)]
    public sealed class DebuggerDisplayAttribute : Attribute
    { /* ... */ }
}
#pragma warning restore // 0444
#endif

Ответы [ 2 ]

3 голосов
/ 23 марта 2011

Ваш пример имеет закомментированный номер:

#pragma warning disable // 0444

Эх, не:

#pragma warning disable 444

Чтобы отключить его глобально, вы используете /nowarn:444 (другие запятыепредупреждения отключить) с помощью компилятора.Если при использовании IDE, возможно, где-то в свойствах проекта будет задано отключение предупреждений (в Visual Studio оно есть на вкладке «Сборка», в SharpDevelop - на вкладке «Компиляция», другие IDE, скорее всего, будут похожи).,Скрипты Nant имеют элемент <onwarn> в качестве разрешенного дочернего элемента <csc> (который также имеет атрибут nowarn, но это устарело).

Я бы избегал глобального отключения, хотя, в конце концов, что-то делалчто запускает CS0444 обычно плохая идея.В приведенном выше случае у вас есть веская причина для этого (вам нужна функциональность, которую не дает компактная версия), и вы знаете, что это то, что вы делаете, но если бы вы случайно сделали это где-то еще, вы бы подавилиПредупреждения, вы не будете мудрее.

Редактировать: В этом отношении у меня есть политика, что я никогда не отключаю предупреждение, по крайней мере, краткий комментарий о том, почему.Некомментированное отключение предупреждения может означать: «Я сделал здесь что-то глупое, а затем отключил предупреждение, а не исправил его», комментарий может прояснить, что это не так, и что ничего не нужно исправлять.

1 голос
/ 23 марта 2011

мммм, возможно попробуйте

#pragma warning disable 444

вместо комментирования номера ошибки? Смотрите здесь конечно

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...