Я только что нашел эти ресурсы:
// The DebuggerDisplayAttribute can be a sweet shortcut to avoid expanding
// the object to get to the value of a given property when debugging.
[DebuggerDisplay("ProductName = {ProductName},ProductSKU= {ProductSKU}")]
public class Product
{
public string ProductName { get; set; }
public string ProductSKU { get; set; }
}
// This attribute is great to skip through methods or properties
// that only have getters and setters defined.
[DebuggerStepThrough()]
public virtual int AddressId
{
get { return _AddressId;}
set
{
_AddressId = value;
OnPropertyChanged("AddressId");
}
}
// The method below is marked with the ObsoleteAttribute.
// Any code that attempts to call this method will get a warning.
[Obsolete("Do not call this method.")]
private static void SomeDeprecatedMethod() { }
// similar to using a combination of the DebuggerHidden attribute, which hides
// the code from the debugger, and the DebuggerStepThrough attribute, which tells
// the debugger to step through, rather than into, the code it is applied to.
[DebuggerNonUserCode()]
private static void SomeInternalCode() { }
У нас есть много CLS, совместимого кода и некоторые не, так что это явно плюс для нас:
[assembly:CLSCompliant(true)]
[CLSCompliant(true)]
Это много помогает нам.
Преобразование 1/3 в двоичный
SO 1/3 = 0,010101010101101010101010101
, а затем просто «умножьте» это число, используя сдвиги и сумму
-121--3428182-Я обычно использую [ROASSARY (FALSE)] и [Serializable] .
[ROWSBARY (FALSE)] на свойстве скрывает свойство от PropertyGrid.
Не стоит ли это быть сообществом-вики?
[DebuggerDisplay(....)]
, чтобы определить, какие поля структуры или класса я хочу видеть на дисплее отладчика.
-121--3007021-Термин производный класс является предпочтительным C++ parlance для класса, который наследует от другого класса, который в C++ parlance называется базовым классом . Поэтому в C++ термины, о которых вы спрашиваете, идентичны.
-121--3095741-Мне действительно нравится DebuggerDisplay :
[DebuggerDisplay("Count = {count}")]
class MyHashtable
{
public int count = 4;
}
Он инструктирует VS, что отображать при наведении курсора на предмет.
Я использовал условные атрибуты Во время создания демонстрационной приложения. Я сделал его в качестве полной версии и подавить некоторые функции, используя эти атрибуты.
[DebuggerDisplay(....)]
, чтобы определить, какие поля структуры или класса я хочу видеть на дисплее отладчика.
Иногда BindableAttribute хорошо влияет на поведение связывания компонентов. Может быть, полезно разжечь отражатель, поискать "Атрибут" и немного просмотреть. Это зависит от ваших намерений, какие из них будут полезны.