コード例 #1
0
        public static Domain Combine(IDomain first, IDomain second)
        {
            if (first.GetNumberOfComponents() + second.GetNumberOfComponents() > 2)
            {
                SimpleDomain[] domainsArray = new SimpleDomain[first.GetNumberOfComponents() + second.GetNumberOfComponents()];
                int            i            = 0;

                if (first is CompositeDomain)                            //prvi argument je tipa 'CompositeDomain'
                {
                    for (int j = 0; j < first.GetNumberOfComponents(); j++)
                    {
                        domainsArray[i] = (SimpleDomain)first.GetComponent(j);
                        i++;
                    }
                }
                else
                {
                    domainsArray[i] = (SimpleDomain)first.GetComponent(0);
                    i++;
                }
                if (second is CompositeDomain)                          //drugi argument je tipa 'CompositeDomain'
                {
                    for (int j = 0; j < second.GetNumberOfComponents(); j++)
                    {
                        domainsArray[i] = (SimpleDomain)second.GetComponent(j);
                        i++;
                    }
                }
                else
                {
                    domainsArray[i] = (SimpleDomain)second.GetComponent(0);
                    i++;
                }

                return(new CompositeDomain(domainsArray));
            }
            else
            {
                SimpleDomain[] domainsArray = new SimpleDomain[] { (SimpleDomain)first, (SimpleDomain)second };
                return(new CompositeDomain(domainsArray));
            }
        }