Оператор нулевого распространения и методы расширения ⇐ C#

Место общения программистов C#
Anonymous
Оператор нулевого распространения и методы расширения

Сообщение Anonymous »

Я смотрел на 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

Вернуться в «C#»