コード例 #1
0
        void MergeOptions(OptionsList list)
        {
            if (list.Item1 != null)
            {
                if (options == null)
                {
                    options = list.Item1;
                }
                else
                {
                    Throw("WithMergeOptions");
                }
            }

            if (list.Item2 != null)
            {
                if (mode == null)
                {
                    mode = list.Item2;
                }
                else
                {
                    Throw("WithExecutionMode");
                }
            }

            if (list.Item3 != null)
            {
                if (token == null)
                {
                    token = list.Item3;
                }
                else
                {
                    Throw("WithCancellationToken");
                }
            }

            if (list.Item4 != -1)
            {
                if (degreeOfParallelism == null)
                {
                    degreeOfParallelism = list.Item4;
                }
                else
                {
                    Throw("WithDegreeOfParallelism");
                }
            }

            // That one is treated specially
            if (list.Item5 != null)
            {
                implementerToken = implementerToken.Chain(list.Item5);
            }
        }