如果既要能够Class2(c4)又要Class2(c3) 这里应该怎么修改?还是这种方法行不通?        public Class2(????????? cc)
        { 
            int s=0;
            for (int i = 1; i < 100; i++)
                s = s + i;
            cc.field = s;
        }示意代码:using System;
using System.Collections.Generic;
using System.Text;namespace ConsoleApplication1
{
    static class Class1
    {
        static void Method3()
        {
            Class3 c3 = new Class3();
            Class2 c2 = new Class2(c3);
            Console.WriteLine(c3.field);
            Console.ReadKey();
        }        static void Method4()
        {
            Class4 c4 = new Class4();
            //Class2 c2 = new Class2(c4);
            //Console.WriteLine(c4.field);
            //Console.ReadKey();        }
        static void Main()
        {
            Method3();
            //Method4();        }
    }
    public class Class2
    {
        public Class2(Class3 c3)
        { 
            int s=0;
            for (int i = 1; i < 100; i++)
                s = s + i;
            c3.field = s;
        }
    }
    public class Class3
    {
        public int field;
    }
    public class Class4
    {
        public int field;
    }
}

解决方案 »

  1.   

    using System;
    using System.Collections.Generic;
    using System.Text;namespace ConsoleApplication1
    {
        static class Class1
        {
            static void Method3()
            {
                IMyClassInterface c3 = new Class3();
                Class2 c2 = new Class2(c3);
                Console.WriteLine(c3.field);
                Console.ReadKey();
            }        static void Method4()
            {
                Class4 c4 = new Class4();
                //Class2 c2 = new Class2(c4);
                //Console.WriteLine(c4.field);
                //Console.ReadKey();        }
            static void Main()
            {
                Method3();
                //Method4();        }
        }
        public class Class2
        {
            public Class2(IMyClassInterface c3)
            { 
                int s=0;
                for (int i = 1; i < 100; i++)
                    s = s + i;
                c3.field = s;
            }
        }
        public interface IMyClassInterface
        {
            int field { get; set; }
        }
        public class Class3 : IMyClassInterface
        {
            public int field { get; set; }
        }
        public class Class4 : IMyClassInterface
        {
            public int field { get; set; }
        }
    }
      

  2.   

    public Class2<T>(T cc)
            { 
                int s=0;
                for (int i = 1; i < 100; i++)
                    s = s + i;
                cc.field = s;
            }