Я использую LinqPad и смотрю на код IL (с включенной оптимизацией компилятора), сгенерированный для следующего интерфейса и класса, реализующего интерфейс:
public interface IStockService
{
[OperationContract]
double GetPrice(string ticker);
}
public class StockService : IStockService
{
public double GetPrice(string ticker)
{
return 93.45;
}
}
Код IL:
IStockService.GetPrice:
StockService.GetPrice:
IL_0000: ldc.r8 CD CC CC CC CC 5C 57 40
IL_0009: ret
StockService..ctor:
IL_0000: ldarg.0
IL_0001: call System.Object..ctor
IL_0006: ret
Удивительно, но я не вижу кода IL для интерфейса.Это из-за того, как работает LinqPad, или компилятор C # обрабатывает интерфейсы по-другому?