Прочитать на английском

Поделиться через


Ошибка компилятора CS1618

Невозможно создать делегат с "метод", так как он имеет атрибут Conditional

Невозможно создать делегат с помощью условного метода, так как метод может отсутствовать в некоторых сборках.

Следующий пример приводит к возникновению ошибки CS1618:

// CS1618.cs  
using System;  
using System.Diagnostics;  
  
delegate void del();  
  
class MakeAnError {  
   public static void Main() {  
      del d = new del(ConditionalMethod);   // CS1618  
      // Invalid because on builds where DEBUG is not set,
      // there will be no "ConditionalMethod".  
   }  
   // To fix the error, remove the next line:  
   [Conditional("DEBUG")]  
   public static void ConditionalMethod()
   {  
      Console.WriteLine("Do something only in debug");  
   }  
}