Информация об изменениях

Сообщение Re[9]: [Ann, C#6] Состояние для VS2015 preview от 25.11.2014 20:53

Изменено 25.11.2014 21:28 agat50

Здравствуйте, Sinix, Вы писали:

Вместе с using static будет примерно так:
S>
S>var a = Eval(() => { using (var x = GetX()) return x.y; });
S>


Ну в целом да Обойти понятно можно. Просто выглядит чуть искусственно.

Про возврат нескольких переменных, так всеми желаемый PM и т.п. — имхо нужна просто возможность тонкой настройки области видимости переменной, очень много решит. https://roslyn.codeplex.com/discussions/552375 вариант с out, хотя сейчас я мб уже к какой-нибудь нормальной директиве типа using в объявлении.

object x = Foo();
if(
    x is A
    &&
    {
        using(var a, Scopes.Outer) = 5;
        return true;
    }
)
{
    Console.WriteLine("{0}", a);
}


Определять тип в var из первого присваивания.
using(var a, Scopes.LazyInference);
a = 5;


склоняюсь для разнообразия. Не то чтобы оно было часто надо, но имхо одной фичей бы убили много зайцев. И в IDE анализировать возможные not initialized проще имхо.
Re[9]: [Ann, C#6] Состояние для VS2015 preview
Здравствуйте, Sinix, Вы писали:

Вместе с using static будет примерно так:
S>
S>var a = Eval(() => { using (var x = GetX()) return x.y; });
S>


Ну в целом да Обойти понятно можно. Просто выглядит чуть искусственно.

Про возврат нескольких переменных, так всеми желаемый PM и т.п. — имхо нужна просто возможность тонкой настройки области видимости переменной, очень много решит. https://roslyn.codeplex.com/discussions/552375 вариант с out, хотя сейчас я мб уже к какой-нибудь нормальной директиве типа using в объявлении.

object x = Foo();
if(
    x is A
    &&
    {
        //Компилятор сам переносит объявление куда нужно
        #using(var a, SCOPES_OUTER) = 5; 
        return true;
    }
)
{
    Console.WriteLine("{0}", a);
}


Определять тип в var из первого присваивания.
#using(var a, INFERENCE_LAZY);
a = 5;


склоняюсь для разнообразия. Не то чтобы оно было часто надо, но имхо одной фичей бы убили много зайцев. И в IDE анализировать возможные not initialized проще имхо.