2015-01-25 2 views
-3

У меня возникли проблемы с вызовом метода 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(); 


     } 
    } 
} 

ответ

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); 
} 

В противном случае создать входом в инстанс глобальных и называют это метод экземпляра (но это не то, что вы хотите, я думаю).

Globals.Global g=new Globals.Global(); 
g.InstantiateBlowerObj(); 
1

Сделать его static.

Вы пытаетесь получить доступ к нестатическому члену в статическом контексте.

public static void InstantiateBlowerObj() 
{ 
     for (int i = 1; i < 4; i++) 
      _Blower[i] = new Blower(i); 
} 
Смежные вопросы