Здравствуйте, nikov, Вы писали:
N>Напишите валидную C# программу, которая содержит следующую последовательность токенов:N>? null :
N>
N>и которая остаётся валидной, если мы уберём токен null из этой последовательности, т.е. оставимN>? :
N>
Ну, почти...
public struct Dummy : IDisposable
{
public void Dispose()
{
}
public static implicit operator bool(Dummy d)
{
return true;
}
public static implicit operator Dummy(bool b)
{
return true;
}
}
class Program
{
static bool Dummy = true;
static void Main()
{
object o = null;
Dummy? d = new Dummy();
using
(
Dummy ?
Dummy = o is Dummy
? null :
d
){}
using
(
(bool)
Dummy ?
Dummy = o is Dummy
? :
d
){}
}
}
Осталось понять, почему без выделенного перестает компилиться. Кто поможет?