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

Сообщение Re: [Ann, VS 2015 RC] Tadpole operators от 27.05.2015 20:51

Изменено 27.05.2015 21:06 #John

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

S>Всем известный Реймонд Чен (который The Old New Thing блог, также рекомендую великолепные переводы от gunsmocker)...


S>Так вот, этот человек и пароход искренне делится со своими читателями новым инсайтом! Та-дамм, The tadpole operators:

S>
S>#define __ENABLE_EXPERIMENTAL_TADPOLE_OPERATORS

S>using System;

S>class Program
S>{
S>    static void Main()
S>    {
S>        var x = 2;
S>        Console.WriteLine(~-x); // x-1
S>        Console.WriteLine(-~x); // x+1

S>        Console.Write("Done.");
S>        Console.ReadKey();
S>    }
S>}
S>


в .net 4.6(vs 15rc) без #define
        static void Main(string[] args)
        {
            var x = 2;
            Console.WriteLine(~-x);     // 1
            Console.WriteLine(~~-x);    // -2
            Console.WriteLine(~~~-x);   // 1
            Console.WriteLine(~~~~-x);  // -2 
            Console.WriteLine(~~~~~-x); // -1
            Console.WriteLine("/////");
            Console.WriteLine(-~x);      // 3
            Console.WriteLine(-~~x);     // -2
            Console.WriteLine(-~~~x);    // 3
            Console.WriteLine(-~~~~x);   // -2
            Console.WriteLine(-~~~~~x);  // 3

            Console.Write("Done.");
            Console.ReadKey();

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

S>Всем известный Реймонд Чен (который The Old New Thing блог, также рекомендую великолепные переводы от gunsmocker)...


S>Так вот, этот человек и пароход искренне делится со своими читателями новым инсайтом! Та-дамм, The tadpole operators:

S>
S>#define __ENABLE_EXPERIMENTAL_TADPOLE_OPERATORS

S>using System;

S>class Program
S>{
S>    static void Main()
S>    {
S>        var x = 2;
S>        Console.WriteLine(~-x); // x-1
S>        Console.WriteLine(-~x); // x+1

S>        Console.Write("Done.");
S>        Console.ReadKey();
S>    }
S>}
S>


в .net 4.6(vs 15rc) без #define
        static void Main(string[] args)
        {
            var x = 2;
            Console.WriteLine(~-x);     // 1
            Console.WriteLine(~~-x);    // -2
            Console.WriteLine(~~~-x);   // 1
            Console.WriteLine(~~~~-x);  // -2 
            Console.WriteLine(~~~~~-x); // 1
            Console.WriteLine("/////");
            Console.WriteLine(-~x);      // 3
            Console.WriteLine(-~~x);     // -2
            Console.WriteLine(-~~~x);    // 3
            Console.WriteLine(-~~~~x);   // -2
            Console.WriteLine(-~~~~~x);  // 3

            Console.Write("Done.");
            Console.ReadKey();

        }