При вычислении выражения ++i.ToString() сначала вычисляется ToString(), а потом ++ - C#
Формулировка задачи:
При вычислении выражения ++i.ToString() сначала вычисляется ToString(), а потом ++. Соответственно, это не работает, работает (++i).ToString(). С одной стороны это будто бы логично, если после точки стоит ссылка на член класса, то значение должно быть типа члена, а не типа класса. Но, разве префиксных операторов это должно касаться? Они на то ж и префиксные, чтоб вычисляться до любых прочих действий с объектом.
Решение задачи: «При вычислении выражения ++i.ToString() сначала вычисляется ToString(), а потом ++»
textual
Листинг программы
class MyClass
{
public int X { get; set; }
public MyClass Foo()
{
//something
return this;
}
public MyClass Boo()
{
//something else
return this;
}
public MyClass Bar()
{
//again something else
return this;
}
}
static void Main(string[] args)
{
var myObj = new MyClass();
int x = ++myObj.Foo().Bar().Boo().X;
Console.WriteLine(x);
}