Esempio n. 1
0
    public void Work()
    {
        var someData = new SomeDataClass();

        someData.SomeDataChanged += new EventHandler(someData_SomeDataChanged);
        someData.SomeData         = "New Value";
    }
    static void Main()
    {
        SomeDataClass data1 = new SomeDataClass();
        SomeDataClass data2 = new SomeDataClass();

        data1.Data = SomeData.Load("somefile.dat");
        data2.Data = data1.Data;
    }
    static void Main()
    {
        SomeDataClass data1 = new SomeDataClass();
        SomeDataClass data2 = new SomeDataClass();

        data1.Data = "somefile.dat"; // this is a load
        data2.Data = data1.Data;     // this is not a load
    }
Esempio n. 4
0
 public void RpcDoSomething(SomeDataClass data)
 {
     // empty
 }
Esempio n. 5
0
        static void Main(string[] args)
        {
            Console.WriteLine(DateTime.Now);
            int counter = 0;
            var p       = new Program();

            p.Setup();

            Console.Write(p.ProcessWithLogging());
            Console.ReadLine();
            Console.Write(p.ProcessWithLogging());

            List <SomeClass> list = new List <SomeClass>()
            {
                new SomeClass()
            };

            // Structs
            var l1 = p.PeopleEmployeedWithinLocation_Classes(100, new LocationClass());
            var l2 = p.PeopleEmployeedWithinLocation_Structs(100, new LocationStruct());

            Console.WriteLine(l1.ToString() + l2.ToString());

            // Listing 6-12
            // Tuples
            var tuple1 = new Tuple <int, double>(0, 0.0);
            var tuple2 = Tuple.Create(0, 0.0);
            // tuple1.Item1 = 3; not possible
            var tuple3 = new { A = 1, B = 0.0 };

            // Listing 6-13
            var tuple4 = (0, 0.0);

            tuple4.Item1 = 3; // possible
            var tuple5 = (A : 0, B : 0.0);

            tuple5.A = 3;
            p.FooBar(tuple1); p.FooBar(tuple4); // boxing dla tuple4!
            p.SomeBar(3);

            // Listing 6-14
            var result1 = p.ProcessDataReturningTupleWithObjects(list);
            var result2 = p.ProcessDataReturnigValueTupleWithStructs(list);

            (ResultDescStruct desc, _) = p.ProcessDataReturnigValueTupleWithStructs(list);

            // Listing 6-17
            int minLength = 10;
            var pool      = ArrayPool <int> .Shared;

            int[] buffer = pool.Rent(minLength);
            try
            {
                Consume(buffer);
            }
            finally
            {
                pool.Return(buffer);
            }

            // RecyclableMemoryStream
            //while (true)
            {
                var data = new SomeDataClass()
                {
                    X = 1, Y = 2
                };
                var str  = p.SerializeXmlWithMemoryStream(data);
                var str2 = p.SerializeXmlWithRecyclableMemoryStream(data);
                Console.WriteLine(str + Environment.NewLine + str2);
            }

            // Delegates
            p.Delegates(new SomeStruct());

            // Closures
            int value = 4;

            p.Closures(value);

            // Listings 6-53, 6-55, 6-57, 6-59
            // LINQ
            var range  = Enumerable.Range(0, 100); // allocates System.Linq.Enumerable/'<RangeIterator>d__111'
            var linq0b = list.Where(x => x.X > 0);
            var linq0a = list.FirstOrDefault(GreaterHelper);
            var linq1  = list.Select(x => new { S = x.X + x.Y });
            var linq2  = list.Select(x => ValueTuple.Create(x.X + x.Y));
            var linq3  = from x in list
                         let s = x.X + x.Y
                                 select s;
            var linq4 = p.FilterStrings_WithLINQ();
            var linq5 = p.FilterStrings_WithoutLINQ();

            Console.WriteLine(linq4.Count() + linq5.Count());


            // Params
            p.MethodWithParams("Counter {0}", counter); // new object[] { counter }
            p.MethodWithParams("Hello!");               // uses static EmptyArray<object>.Value


            // Summary
            var arg1 = new int[] { 1, 4, 7, 9 };

            int[] intData  = new[] { 123, 32, 4 };
            int[] results  = p.SummaryOnArrayToArray(arg1, 2, 8, 2);
            var   results2 = p.SummaryOnArrayToList(intData, 31).TrueForAll(x => x > 0);
            var   results3 = p.SummaryOnArrayToListGeneric(intData, 31).TrueForAll(x => x > 0);
            var   results4 = p.SummaryOnArrayToEnumerable(intData, 31).ToList().TrueForAll(x => x > 0);

            Console.WriteLine(results.ToString() + results2.ToString() + results3.ToString() + results4.ToString());

            // Async
            Console.WriteLine(p.ReadFileAsync("TextFile2.txt").Result);
            Console.WriteLine(p.ReadFileAsyncValue("TextFile2.txt").Result);
            Console.WriteLine(p.ConsumeValueTask_RarelyNeeded("TextFile2.txt").Result);
            Console.WriteLine(p.ConsumeValueTask_Good("TextFile2.txt").Result);
            // ArrayPool
            Console.WriteLine(p.UseArrayPool(100));
            var arrayPool = ArrayPool <int> .Shared.Rent(2 * 1024 * 1024);

            Console.WriteLine(arrayPool[0]);
            ArrayPool <int> .Shared.Return(arrayPool);

            Console.ReadLine();
        }