По сути дела атрибут – это маркер, которым можно пометить элемент кода, например метод или класс (или даже отдельный аргумент).
[Conditional] (рус. условный) используется для пометки метода как отладочного. Компилятор не будет компилировать этот метод (и любые операторы которые ссылаются на него), если определен следующий символ («DEBUG» например). Объявлен в System.Giagnostics.
[Conditional("DEBUG")] public void Generate() { // отладка }
[DllImport] – помечает метод, как определенный во внешней DLL, а не в какой-либо сборке. Объявлен в пространстве имен System.Runtime.InteropServices.
[DllImport("user32.dll")] public static extern int MessageBox(int hParent, string Message, string Caption, int Type); ... MessageBox(0, "Hello", "myProgram", 0);Читать далее...