Форум программистов, компьютерный форум, киберфорум
C# .NET
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.61/18: Рейтинг темы: голосов - 18, средняя оценка - 4.61
0 / 0 / 0
Регистрация: 23.04.2009
Сообщений: 15
1

Доступ к свойствам экземпляра класса из другого класса

26.09.2009, 17:57. Показов 3742. Ответов 2
Метки нет (Все метки)

Здравствуйте! У меня возникла программа с написанием программы на C#.
"Реализовать набор классов, описывающих студента (с успеваемостью) и группу студентов. Класс Группа должен обладать функциональностью, позволяющей получать статистику по группе (количество задолженностей, средний балл и т.п.)."
В классе FormStud создан массив экземпляров класса Stud. Как получить доступ к элементам этого массива класса из класса Group. При обращении к currStudent из класса Group возникает ошибка "Элемент currStudent не существует в текущем контексте". Если кто знает, как это исправить, отзовитесь. Заранее спасибо!
Класс Stud
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
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
 
namespace MyGroup.Classes
{
    public class Stud
    {
        private string _Surname;
        private string _Name;
        private double _Mark;
        private int _Dolg;
        private int _Propusk;
 
        public Stud()
        {
 
        }
 
        public string Surname
        {
            get { return _Surname; }
            set { _Surname = value; }
        }
 
        public string Name
        {
            get { return _Name; }
            set { _Name = value; }
        }
 
        public double Mark
        {
            get { return _Mark; }
            set { _Mark = value; }
        }
 
        public int Dolg
        {
            get { return _Dolg; }
            set { _Dolg = value; }
        }
 
        public int Propusk
        {
            get { return _Propusk; }
            set { _Propusk = value; }
        }
 
        public string Res
        {
            get
            {
                return _Surname;
            }
            set
            {
                SetResult(value);
            }
        }
        private void SetResult(string StrResult)
        {
            string[] StrElem = StrResult.Split(' '); 
            _Surname = StrElem[0];
            _Name = StrElem[1];
            _Mark = Convert.ToDouble(StrElem[2]);
            _Dolg = Convert.ToInt32(StrElem[3]);
            _Propusk = Convert.ToInt32(StrElem[4]);
        }
    }
}
Класс FormStud
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
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using MyGroup.Classes;
 
 
namespace MyGroup
{
    public partial class FormStud : Form
    {
        public FormStud()
        {
            InitializeComponent();             
        }
 
        private void cmdGroup_Click(object sender, EventArgs e)
        {
            FormGroup f1 = new FormGroup();
            f1.Show();
            this.Hide();
        }
 
        private void FormStud_Load(object sender, EventArgs e)
        {
            int i;
            Encoding enc = Encoding.GetEncoding(1251);
            string[] _students = System.IO.File.ReadAllLines("Students.txt", enc);  //Массив строк из файла
            Stud[] currStudent = new Stud[_students.GetLength(0)]
            int k = 25;
            for (i = 0; i < _students.GetLength(0); i++)
            {
                currStudent[i] = new Stud();
                currStudent[i].Res = _students[i];
                TextBox tSurname = new TextBox();
                tSurname.Left = 20;
                tSurname.Top = k;
                tSurname.Width = 100;
                tSurname.Text = currStudent[i].Surname;
                TextBox tName = new TextBox();
                tName.Left = 130;
                tName.Top = k;
                tName.Width = 100;
                tName.Text = currStudent[i].Name;
                TextBox tMark = new TextBox();
                tMark.Left = 230;
                tMark.Top = k;
                tMark.Width = 40;
                tMark.Text = Convert.ToString(currStudent[i].Mark);
                TextBox tDolg = new TextBox();
                tDolg.Left = 300;
                tDolg.Top = k;
                tDolg.Width = 40;
                tDolg.Text = Convert.ToString(currStudent[i].Dolg);
                TextBox tPropusk = new TextBox();
                tPropusk.Left = 370;
                tPropusk.Top = k;
                tPropusk.Width = 40;
                tPropusk.Text = Convert.ToString(currStudent[i].Propusk);
                k += 22;
                this.Controls.Add(tSurname);
                this.Controls.Add(tName);
                this.Controls.Add(tMark);
                this.Controls.Add(tDolg);
                this.Controls.Add(tPropusk);
            }
        }
 
 
        private void FormStud_FormClosed(object sender, FormClosedEventArgs e)
        {
            Application.Exit();
        }
    }
}
Класс Group
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
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using MyGroup;
 
namespace MyGroup.Classes
{
    public class Group
    {
        private int _Number = 1;
        private double _Mark = 0;
        private int _Dolg = 0;
        private int _Propusk = 0;
        private int n = 0;
 
        
        public Group()
        {
 
        }
 
        public double Mark
        {
            get { return _Mark; }
            set { _Mark = value; }
        }
 
        public int Number
        {
            get { return _Number; }
        }
 
        public int N
        {
            get { return n; }
            set { n = value; }
        }
 
        public int Dolg
        {
            get { return _Dolg; }
            set { _Dolg = value; }
        }
 
        public int Propusk
        {
            get { return _Propusk; }
            set { _Propusk = value; }
        }
 
        public void SetResult()
        {
            int i;
            for (i = 0; i < currStudent.GetLength(0); i++)
            {
                _Mark += currStudent[i].Mark;
                _Dolg += currStudent[i].Dolg;
                _Propusk += currStudent[i].Propusk;
            }
            _Mark /= currStudent.GetLength(0);
        }
   }
}
Класс FormStud
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
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using MyGroup.Classes;
 
 
namespace MyGroup
{
    public partial class FormStud : Form
    {
        public FormStud()
        {
            InitializeComponent();
                        
        }
 
        private void cmdGroup_Click(object sender, EventArgs e)
        {
            FormGroup f1 = new FormGroup();
            f1.Show();
            this.Hide();
        }
 
        private void FormStud_Load(object sender, EventArgs e)
        {
            int i;
            Encoding enc = Encoding.GetEncoding(1251);
            string[] _students = System.IO.File.ReadAllLines("Students.txt", enc);  //Массив строк из файла
            Stud[] currStudent = new Stud[_students.GetLength(0)];
            
            
            int k = 25;
            for (i = 0; i < _students.GetLength(0); i++)
            {
                currStudent[i] = new Stud();
                currStudent[i].Res = _students[i];
                
                TextBox tSurname = new TextBox();
                tSurname.Left = 20;
                tSurname.Top = k;
                tSurname.Width = 100;
                tSurname.Text = currStudent[i].Surname;
                TextBox tName = new TextBox();
                tName.Left = 130;
                tName.Top = k;
                tName.Width = 100;
                tName.Text = currStudent[i].Name;
                TextBox tMark = new TextBox();
                tMark.Left = 230;
                tMark.Top = k;
                tMark.Width = 40;
                tMark.Text = Convert.ToString(currStudent[i].Mark);
                TextBox tDolg = new TextBox();
                tDolg.Left = 300;
                tDolg.Top = k;
                tDolg.Width = 40;
                tDolg.Text = Convert.ToString(currStudent[i].Dolg);
                TextBox tPropusk = new TextBox();
                tPropusk.Left = 370;
                tPropusk.Top = k;
                tPropusk.Width = 40;
                tPropusk.Text = Convert.ToString(currStudent[i].Propusk);
                k += 22;
                this.Controls.Add(tSurname);
                this.Controls.Add(tName);
                this.Controls.Add(tMark);
                this.Controls.Add(tDolg);
                this.Controls.Add(tPropusk);
            }
        }
 
 
        private void FormStud_FormClosed(object sender, FormClosedEventArgs e)
        {
            Application.Exit();
        }
    }
}
__________________
Помощь в написании контрольных, курсовых и дипломных работ здесь
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
26.09.2009, 17:57
Ответы с готовыми решениями:

Доступ к переменным другого класса
class Form1: Form { public Class1 cl; public PictureBox pictureBox1; public ImageList...

Доступ к GUI из метода другого класса запущенного в фоновом потоке
С доступом к win форме из фонового потока все понятно. Разобрался и с доступом к форме из другого...

Каким образом можно из метода одного класса, вывести в метод другого класса текст всплывающего сообщения
Доброе время суток! Есть метод отрисовки всплывающего сообщения public void SetBalloonTip()...

Вызов метода из другого класса, при этом нельзя создать объект второго класса и метод не статический
У меня есть 2 класса - один с формой и кнопкой на ней и другой класс, у которого есть метод void...

2
85 / 77 / 13
Регистрация: 03.09.2009
Сообщений: 346
26.09.2009, 18:17 2
Насколько я понял ваша ошибка в том, что массив со студентами должен быть не в форме а в классе Группа.
В форме нужно будет создавать экземпляр класса Group, а уже сам Group будет внутри себя создавать массив Stud. Количество студентов можно задать классу Group через конструктор.
1
0 / 0 / 0
Регистрация: 23.04.2009
Сообщений: 15
26.09.2009, 19:20  [ТС] 3
SergBokh, Спасибо за помощь!
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
26.09.2009, 19:20

Как в случае с Dependency Injection внедрять отдельный экземпляр некоторого класса только лишь для одного другого класса
Здравствуйте, пытаюсь понять как же всё таки правильно использовать Dependency Injection в случае c...

Проход по свойствам класса
Здравствуйте! Есть класс и в нем свойства. Как мне пройтись по этим свойствам циклом как по...

Динамическое создание экземпляра класса.
Есть программа. Как сделать что-бы пользователь вводил имя, а затем создавался экземпляр класса с...

Динамическое создание экземпляра класса
Подскажите начинаюшему! Есть FileUpload, с помощью него я хочу отправить файл на почтовый ящик. ...


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

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

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2022, CyberForum.ru