Вызов вложенной функции - C#

Узнай цену своей работы

Формулировка задачи:

Проблема вот в чем: У меня два файла в проекте, 1 - с формой, второй - с написанным классом, а также инициализированными в нем вложенными функциями. Мне нужно в файле с формой по нажатию кнопки вызвать вложенную функцию из файла с классом. Но выдается ошибка, что "Имя "название функции" не существует в текущем контексте". При этом на классе и на функции стоит public и они оба находятся в одном пространстве имен(пространстве имен проекта). Также странно, что объект класса спокойно себе инициализировался несколькими строками ранее безо всяких ошибок. В чем может быть проблема? Заранее спасибо.
Пардон, вот коды. Форма:
namespace Final_Pract
{
    public partial class KMForm : Form
    {  
        public KMForm()
        {
                      InitializeComponent();
        }
 
        private void Form1_Load(object sender, EventArgs e)
        {
 
        }
 
private void StartBut_Click(object sender, EventArgs e)
        {
 
            List<Point> pixels = new List<Point> { };
            List<Cluster> clust = new List<Cluster> { };
            int m = Convert.ToInt32(ClusterNum.Text);
            Start(m, clust, pixels);
 
        }
и класс
namespace Final_Pract
{
    public struct Point
    {
        public int re, gr, bl, x, y;
        public Point(int a, int b, int c, int m, int l)
        {
            re = a;
            gr = b;
            bl = c;
            x = m;
            y = l;
        }
    };
 
    public class Cluster
    {
        public List<Point> pixels;
        public int curX, curY, curZ;//координаты текущего центроида
        public int lastX, lastY, lastZ;//координаты предыдущего центоида
        public int Size() { return pixels.Capacity; }//получаем размер вектора
        public void Add(Point pt) { pixels.Add(pt); }//Добавляем пиксель к кластеру
 
        public void Clear()
        {
            pixels.Clear();
        }
 
        public void SetCenter()
        {
            
        }
 
        public static void Bind(int k, List<Cluster> clust, List<Point> map)
        {
            
        }
 
        public static void InitialCenter(int k, List<Cluster> clusarr, List<Point> vpt)
        {
 
        }
 
        public static void Start(int k, List<Cluster> clusarr, List<Point> vpt)
        {
            InitialCenter(k, clusarr, vpt);
            int count = 0;
            for (;;)
                count++;
            {//Запускаем основной цикл
                int chk = 0;
                Bind(k, clusarr, vpt);//Связываем точки с кластерами
                for (int j = 0; j < k; j++)//Высчитываем новые координаты центроидов 
                    clusarr[j].SetCenter();
                for (int p = 0; p < k; p++)//Проверяем не совпадают ли они с предыдущими цент-ми
                    if (clusarr[p].curX == clusarr[p].lastX && clusarr[p].curY == clusarr[p].lastY && clusarr[p].curZ == clusarr[p].lastZ)
                        chk++;
                if (chk == k) return;//Если да выходим с цикла
            }
        }
    }
}
Может, поможет

Решение задачи: «Вызов вложенной функции»

textual
Листинг программы
Start(m, clust, pixels);

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

11   голосов , оценка 4 из 5