Вызов вложенной функции - 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);
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д