public void MainMethod()
        {
            {
                int aSource = 10;

                DateTime dtSource = DateTime.UtcNow;

                SampleStruct sSource = new SampleStruct();
                sSource.IntrnalValue = 9;

                SampleStruct sSourceV2 = new SampleStruct
                {
                    IntrnalValue = 9
                };


                PassValue(aSource, SampleEnum.Done, dtSource, sSource);

                Console.WriteLine(sSource.IntrnalValue); // => 9
            }

            {
                var scSource = new SampleClass();
                PassReference(scSource);
            }

            {
                int aSource = 10;
                PassValueAsReference(ref aSource);
            }

            {
                int aSource;
                AwaitValue(out aSource);
            }
        }
 private void PassValue(int a, SampleEnum se, DateTime dt, SampleStruct sst)
 {
     a = 50;                 //a local variable copied from aSource
     sst.IntrnalValue = 100; //won't touch sSource.InternalValue
     //Check the DateTime is immutable
 }