С наступающим Новым годом! Форум программистов, компьютерный форум, киберфорум
Наши страницы
C# Windows Forms
Войти
Регистрация
Восстановить пароль
 
NPD
0 / 0 / 0
Регистрация: 13.11.2016
Сообщений: 21
Завершенные тесты: 1
1

Не статическая функция, вызов классе

23.07.2018, 17:59. Просмотров 71. Ответов 3
Метки нет (Все метки)

C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
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;
 
namespace WindowsFormsApplication1
{
    public partial class Form1 : Form
    {
        public class Food
        {
            public byte x { get; set; }
            public byte y { get; set; }
            private Random ran = new Random();
            public void createFood()
            {
                x = (byte)ran.Next(xSize);
                y = (byte)ran.Next(ySize);
            }
            public void draw()
            {
                pixel(x, y);
            }
 
        }
        public const byte xSize = 100;
        public const byte ySize = 100;
        public void pixel(byte x, byte y)
        {
            Graphics g = this.CreateGraphics();
            g.DrawLine(new Pen(Color.Blue), x, y, x, y);
        }
 
        public Form1()
        {
            InitializeComponent();
            Food food = new Food();
        }
    }
}
Не подскажите как ликвидировать эту ошибку?
Невозможно получить доступ к нестатическому члену внешнего типа "WindowsFormsApplication1.Form1" через вложенный тип "WindowsFormsApplication1.Form1.Food"
Заранее большое спасибо!
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
23.07.2018, 17:59
Ответы с готовыми решениями:

Вызов метода в классе формы из класса другого проекта
Есть проект Project1 и Project2 - оба ClassLibrary. В Project1 происходит вызов...

Статическая функция в классе
Делаю класс создания окна, для экономии кода хочу засунуть обработчик событий в...

Статическая функция в шаблонном классе
Под windows все отлично работало, но под linux выдает ошибку : ...

Не работает статическая функция в шаблонном классе
Под windows все отлично работало, но под linux выдает ошибку : ...

Статическая переменная в классе
Нужно вывести на экран порядковый номер объекта, используя статическую...

3
Wolflind
89 / 80 / 21
Регистрация: 17.03.2016
Сообщений: 340
Записей в блоге: 1
23.07.2018, 18:11 2
а зачем было класс в класс запихивать?

Добавлено через 2 минуты
Вынесите его отдельно это может и можно делать но не разу не встречал в этого и не вижу большой необходимости тем более в данном коде
0
ViterAlex
6838 / 3800 / 1553
Регистрация: 11.02.2013
Сообщений: 8,346
Завершенные тесты: 3
23.07.2018, 18:13 3
Метод pixel у тебя объявлен в классе Form1, а обращаешься ты к нему из другого класса Food. Поскольку метод не статический, то нужно обращаться через экземпляр класса. Всё нужно переделать.
А чтобы подсказать как переделать, поясни свою задачу.
0
Wolflind
89 / 80 / 21
Регистрация: 17.03.2016
Сообщений: 340
Записей в блоге: 1
23.07.2018, 18:16 4
скорей всего ошибка здесь
public const byte xSize = 100;
public const byte ySize = 100;

x = (byte)ran.Next(xSize);
y = (byte)ran.Next(ySize);

странная конструкция я бы такую не использовал откуда он знает из какова экземляра Form1 эти параметры брать
передавайте в createFood экземпляр Form1

Добавлено через 1 минуту
либо в конструктор Food и сохраняйте ссылку на Form1 внури
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
23.07.2018, 18:16

Статическая структура в классе: Неразрешенный внешний символ
Решил создать класс со статической структорой, выдает ошибку Ошибка 1 error...

Как в классе Thread реализован вызов run(), если метод run() определён в АВТОРСКОМ классе?
И, следовательно, в классе Thread ничего не известно о вызове run? То есть,...

статическая функция
Добрый день!Хотел бы попросить помощи и объяснить, что я делаю не так...Я...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru