示例#1
0
        static void Main()
        {
            // C# コンパイラーのレベルで実現している機能(.NET のバージョンは問わない)
            Csharp6.SyntaxSugarSample.X();
            Csharp6.SyntaxSugarSample.SameAsX();
            var entry = new Csharp6.Entry(1, "one");
            Csharp6.NullConditionalSample.X(entry);
            Csharp6.NullConditionalSample.SameAsX(entry);
            Csharp6.NullConditionalSample.Y(entry);
            Csharp6.NullConditionalSample.SameAsY(entry);
            Csharp6.StringInterpolationSample.X();
            Csharp6.StringInterpolationSample.SameAsX();
            Csharp3.SyntaxSugarSample.X();
            Csharp3.SyntaxSugarSample.SameAsX();
            Csharp3.PartialMethodSample.X();

            // .NET のレベルでは 1.0, 2.0 時代から対応していたけども、C# 的には後から対応したもの
            Csharp6.SyntaxSugarSample.Y();
            Csharp4.VarianceSample.X();
            Csharp4.DefaultParameterSample.X();
            Csharp4.DefaultParameterSample.SameAsX();

            // どのバージョンでもコンパイルは通るけども、挙動がちょっと違うもの
            Csharp5.ForeachBreakingChangeSample.X();

#if Ver3 || (Ver2 && Plus)
            // .NET 3.5 以降のみ。ただし、.NET 2.0 でも簡単なクラスの自作で対応可能。

            Csharp6.ExtensionListInitializerSample.X();
            Csharp6.ExtensionListInitializerSample.SameAsX();

            var snake_case_string = "snake_case_string";
            Csharp3.ExtensionMethodSample.SnakeToPascal(snake_case_string);
            Csharp3.ExtensionMethodSample.SameAsSnakeToPascal(snake_case_string);
            Csharp3.LinqToObjectSample.X();
#endif

#if Ver4_5 || (Ver2 && Plus)
            // .NET 4.5 以降のみ。ただし、.NET 2.0 でも簡単なクラスの自作で対応可能。
            // .NET 4 以降であれば NuGet パッケージの参照で対応可能。

            Csharp5.CallerInfoSample.X();
            Csharp5.CallerInfoSample.ApproxSameAsX();
#endif

#if Ver4_5 || (Ver4 && Plus)
            // .NET 4.5 以降のみ。ただし、.NET 4 以降であれば NuGet パッケージの参照で対応可能。

            Csharp6.AsyncSample.XAsync().Wait();
            Csharp6.AsyncSample.AproxSameXAsync().Wait();
            Csharp5.AsyncSample.XAsync().Wait();
            Csharp5.AsyncTaskSample.XAsync().Wait();
#endif

#if Ver4_6 || (Ver2 && Plus)
            // .NET 4.6 以降のみ。ただし、.NET 2.0 でも簡単なクラスの自作で対応可能。

            Csharp6.StringInterpolationSample.Y();
            Csharp6.StringInterpolationSample.SameAsY();
#endif

#if Ver4
            // .NET 4 以降のみ。

            Csharp4.VarianceBclSample.X();
            Csharp4.DynamicSample.X();
#endif
        }
示例#2
0
        static void Main()
        {
            // C# コンパイラーのレベルで実現している機能(.NET のバージョンは問わない)
            Csharp6.SyntaxSugarSample.X();
            Csharp6.SyntaxSugarSample.SameAsX();
            var entry = new Csharp6.Entry(1, "one");

            Csharp6.NullConditionalSample.X(entry);
            Csharp6.NullConditionalSample.SameAsX(entry);
            Csharp6.NullConditionalSample.Y(entry);
            Csharp6.NullConditionalSample.SameAsY(entry);
            Csharp6.StringInterpolationSample.X();
            Csharp6.StringInterpolationSample.SameAsX();
            Csharp3.SyntaxSugarSample.X();
            Csharp3.SyntaxSugarSample.SameAsX();
            Csharp3.PartialMethodSample.X();

            // .NET のレベルでは 1.0, 2.0 時代から対応していたけども、C# 的には後から対応したもの
            Csharp6.SyntaxSugarSample.Y();
            Csharp4.VarianceSample.X();
            Csharp4.DefaultParameterSample.X();
            Csharp4.DefaultParameterSample.SameAsX();

            // どのバージョンでもコンパイルは通るけども、挙動がちょっと違うもの
            Csharp5.ForeachBreakingChangeSample.X();

#if Ver3 || (Ver2 && Plus)
            // .NET 3.5 以降のみ。ただし、.NET 2.0 でも簡単なクラスの自作で対応可能。

            Csharp6.ExtensionListInitializerSample.X();
            Csharp6.ExtensionListInitializerSample.SameAsX();

            var snake_case_string = "snake_case_string";
            Csharp3.ExtensionMethodSample.SnakeToPascal(snake_case_string);
            Csharp3.ExtensionMethodSample.SameAsSnakeToPascal(snake_case_string);
            Csharp3.LinqToObjectSample.X();
#endif

#if Ver4_5 || (Ver2 && Plus)
            // .NET 4.5 以降のみ。ただし、.NET 2.0 でも簡単なクラスの自作で対応可能。
            // .NET 4 以降であれば NuGet パッケージの参照で対応可能。

            Csharp5.CallerInfoSample.X();
            Csharp5.CallerInfoSample.ApproxSameAsX();
#endif

#if Ver4_5 || (Ver4 && Plus)
            // .NET 4.5 以降のみ。ただし、.NET 4 以降であれば NuGet パッケージの参照で対応可能。

            Csharp6.AsyncSample.XAsync().Wait();
            Csharp6.AsyncSample.AproxSameXAsync().Wait();
            Csharp5.AsyncSample.XAsync().Wait();
            Csharp5.AsyncTaskSample.XAsync().Wait();
#endif

#if Ver4_6 || (Ver2 && Plus)
            // .NET 4.6 以降のみ。ただし、.NET 2.0 でも簡単なクラスの自作で対応可能。

            Csharp6.StringInterpolationSample.Y();
            Csharp6.StringInterpolationSample.SameAsY();
#endif

#if Ver4
            // .NET 4 以降のみ。

            Csharp4.VarianceBclSample.X();
            Csharp4.DynamicSample.X();
#endif
        }