Skip to content
This repository has been archived by the owner on Jul 22, 2023. It is now read-only.

Поправил неточность в объяснении решения задачи «Boxing» #4

Merged
merged 1 commit into from
Dec 11, 2014

Conversation

igor-shevchenko
Copy link
Contributor

Если структура переопределяет метод ToString (как в задаче), то при вызове этого метода упаковки не происходит. В примере из задачи экземпляр Foo упаковывается по другой причине: для Console.WriteLine используется перегруженный вариант с аргументом типа object.

На таком примере можно увидеть, что для вызова ToString не требуется упаковка:

    struct Foo
    {
        int value;
        public override string ToString()
        {
            if (value == 2)
                return "Baz";
            return (value++ == 0) ? "Foo" : "Bar";
        }
    }
    void Main()
    {
        var foo = new Foo();
        Console.WriteLine(foo.ToString());  // "Foo"
        Console.WriteLine(foo.ToString());  // "Bar"
        Console.WriteLine(foo.ToString());  // "Baz"
    }

@AndreyAkinshin
Copy link
Owner

Большое спасибо за уточнение!

AndreyAkinshin added a commit that referenced this pull request Dec 11, 2014
Поправил неточность в объяснении решения задачи «Boxing»
@AndreyAkinshin AndreyAkinshin merged commit 734ec60 into AndreyAkinshin:master Dec 11, 2014
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants