当前上下文错误

时间:2015-01-25 19:20:22

标签: c# compiler-errors

我在公开Globals.Global.InstantiateBlowerObj();中调用方法frmMain()时遇到问题。我收到错误"名称' Globals.Global.InstantiateBlowerObj'在当前的背景下不存在。"我把所有的课程和方法都公之于众,我无法弄清楚这一点。

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using WetVacClient;
using Globals;
using Globals.Global;

namespace Globals
{
    public class Global
    {
        public Blower[] _Blower = new Blower[4];

        public void InstantiateBlowerObj()
        {
            for (int i = 1; i < 4; i++)
                _Blower[i] = new Blower(i);
        }
    }
}


namespace WetVacClient
{

    public partial class frmMain : Form
    {


        public frmMain()
        {
            InitializeComponent();

            Globals.Global.InstantiateBlowerObj();


        }
    }
}

2 个答案:

答案 0 :(得分:1)

将其设为static

您正在尝试访问静态上下文中的非静态成员。

public static void InstantiateBlowerObj()
{
        for (int i = 1; i < 4; i++)
            _Blower[i] = new Blower(i);
}

答案 1 :(得分:1)

您需要同时制作方法和_Blower属性静态

public static Blower[] _Blower = new Blower[4];

public static void InstantiateBlowerObj()
{
    for (int i = 1; i < 4; i++)
        _Blower[i] = new Blower(i);
}

否则创建一个Global的intance并调用它的实例方法(但这不是你想要的)。

Globals.Global g=new Globals.Global();
g.InstantiateBlowerObj();
相关问题