风和稻草人 2017-08-15 06:22 采纳率: 0%
浏览 2622

C# 把一个对象当作构造函数的参数来传递,在方法体外实例化该类时报错

创建了两个类Demo1和Demo2

Demo1里有一个字段sentence:

  public class Demo1
  {
        public string sentence="OK";
  }

Demo2的构造函数需要一个Demo1类型的对象作参数:

 public class Demo2
    {
        string words;
                //构造函数
        public Demo2(Demo1 D)
        {
            words = D.sentence;
        }

        public void write()
        {
            Console.WriteLine(words);
        }
    }

在方法体外部实例化Demo2:

 class Program
    {
        Demo1 D = new Demo1();
        Demo2 D2 = new Demo2(D);
        static void Main(string[] args)
        {
            D2.write();
            Console.ReadKey();
        }
    }

会报错:
字段初始值设定项无法引用非静态字段、方法或属性

求大神们帮忙解惑,谢谢

  • 写回答

3条回答 默认 最新

  • 鼠晓 博客专家认证 2017-08-15 06:31
    关注

    main方法是静态的,,需要给上面两个变量加上静态修饰符,,如下:

     static  Demo1 D = new Demo1();
           static Demo2 D2 = new Demo2(D);
            static void Main(string[] args)
            {
                D2.write();
                Console.ReadKey();
            }
    

    你再试试。

    评论

报告相同问题?

悬赏问题

  • ¥15 对于相关问题的求解与代码
  • ¥15 ubuntu子系统密码忘记
  • ¥15 信号傅里叶变换在matlab上遇到的小问题请求帮助
  • ¥15 保护模式-系统加载-段寄存器
  • ¥15 电脑桌面设定一个区域禁止鼠标操作
  • ¥15 求NPF226060磁芯的详细资料
  • ¥15 使用R语言marginaleffects包进行边际效应图绘制
  • ¥20 usb设备兼容性问题
  • ¥15 错误(10048): “调用exui内部功能”库命令的参数“参数4”不能接受空数据。怎么解决啊
  • ¥15 安装svn网络有问题怎么办