Re: [Этюд, C#] Ненужный null
От: scale_tone Норвегия https://scale-tone.github.io/
Дата: 26.12.13 20:27
Оценка:
Здравствуйте, 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
        ){}
    }
}


Осталось понять, почему без выделенного перестает компилиться. Кто поможет?
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.