Я смотрел на Visual Studio 14 CTP вместе с C# 6.0 и играл с оператором Null Ropagation. < /p>
Однако я не смог найти, почему следующий код не компилируется. Функции еще не задокументированы, поэтому я не уверен, что это ошибка или методы расширения, просто не поддерживаются оператором?. < /Code>, и сообщение об ошибке вводит в заблуждение. < /P>
class C
{
public object Get()
{
return null;
}
}
class CC
{
}
static class CCExtensions
{
public static object Get(this CC c)
{
return null;
}
}
class Program
{
static void Main(string[] args)
{
C c = null;
var cr = c?.Get(); //this compiles (Get is instance method)
CC cc = null;
var ccr = cc?.Get(); //this doesn't compile
Console.ReadLine();
}
}
< /code>
Сообщение об ошибке: < /p>
'consoleapplication1.cc' не содержит определения для «получить», а метод расширения «Получите». Принимая первый аргумент типа «Консолеяплиция1.cc». /> < /blockquote>
Подробнее здесь: https://stackoverflow.com/questions/241 ... on-methods