0 / 0 / 0
Регистрация: 24.07.2013
Сообщений: 46
1

Обращение к элементам класса (поставив точку, показать свойства и методы класса)

11.03.2014, 08:15. Показов 4597. Ответов 7
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Есть класс Audio, у него есть две основных задачи воспроизводить и записывать звук (Recorder/Player).
Хотелось бы, что бы все методы и свойства Recorder’a и Player’a были доступны через точку, то есть имели вид:

C#
1
2
3
Audio audio = new Audio();
audio.Recorder.OptionsDefault();
audio.Recorder.Start(FileName);
Подскажите как это сделать, не могу разобраться. Заранее спасибо.
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
11.03.2014, 08:15
Ответы с готовыми решениями:

Почему при обращении к методам класса через точку VS показывает в том числе и private методы унаследованного класса?
Есть три класса. Каждый наследует другой с модификатором наследования private. Соответственно...

Почему VS при обращении к методам класса через точку показывает в том числе и private методы унаследованного класса?
Есть два класса. Один наследует другой с модификатором наследования private. Соответственно...

В приложенном коде требуется реализовать свойства для класса. Все методы класса оставить без изменения
Для этой программы требуется реализовать свойства для класса.Все методы класса оставить без...

Обращение к элементам класса
есть класс public class data : IComparable { int y, m, d; // переменные для часов,...

7
2151 / 1288 / 516
Регистрация: 04.03.2014
Сообщений: 4,092
11.03.2014, 13:28 2
сделать методы статическими
0
0 / 0 / 0
Регистрация: 24.07.2013
Сообщений: 46
11.03.2014, 15:16  [ТС] 3
А можно пример, если честно, не очень понял, как это сделать.
0
708 / 708 / 226
Регистрация: 04.03.2013
Сообщений: 1,384
11.03.2014, 15:18 4
Класс Recorder ваш? Нужные методы доступны вне класса (public/internal)?
0
0 / 0 / 0
Регистрация: 24.07.2013
Сообщений: 46
11.03.2014, 15:23  [ТС] 5
Да, Recorder и Player это отдельные классы, и их методы и свойства доступны вне класса.
0
708 / 708 / 226
Регистрация: 04.03.2013
Сообщений: 1,384
11.03.2014, 15:26 6
Тогда включите в Audio объект Recorder'a.
0
Администратор
Эксперт .NET
9602 / 4744 / 761
Регистрация: 17.04.2012
Сообщений: 9,592
Записей в блоге: 14
11.03.2014, 15:30 7
Лучший ответ Сообщение было отмечено Orodunaar как решение

Решение

Если в таком виде, как вы привели, то
Кликните здесь для просмотра всего текста
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
public class Audio
{
    public Recorder Recorder { set; get; }
    // ...
}
 
public class Recorder
{
    public void OptionsDefault() {
        // ...
    }
 
    public void Start(string filename) {
        // ...
    }
}
 
class Program
{
    static void Main(string[] args) {
        Audio audio = new Audio();
        audio.Recorder.OptionsDefault();
    }
}

Если вызов непосредственно из Recorder, то
Кликните здесь для просмотра всего текста
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
public class Recorder
{
    public static void OptionsDefault() {
        // ...
    }
 
    public static void Start(string filename) {
        // ...
    }
}
 
class Program
{
    static void Main(string[] args) {
        Recorder.OptionsDefault();
    }
}
0
0 / 0 / 0
Регистрация: 24.07.2013
Сообщений: 46
11.03.2014, 20:31  [ТС] 8
Спасибо, разобрался.

То что меня интересовало, называется Агрегирование. Вот Описание на Вики:
http://ru.wikipedia.org/wiki/А... ммирование)

У меня получился следующий вид:

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
public class Player
{
//......
public void Start()
{
//.....
}
//......
}
 
public class Recorder
{
//......
public void Start()
{
//.....
}
//......
}
 
public class Audio 
{
public Player player;
public Recorder record;
//.......
}
 
public partial class MainForm : Form
{
Audio audio = new Audio();
//..........
void Button1Click(object sender, EventArgs e)
{
//....
sound.record.Start();
}
}
0
11.03.2014, 20:31
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
11.03.2014, 20:31
Помогаю со студенческими работами здесь

Обращение к элементам, членам класса
Здравствуйте! Мне нужно выполнить задания из меню (в коде программы), но я не могу понять как...

Обращение из класса к элементам формы
Добрый вечер, подскажите пожалуйста, как из класса обратиться к элементам формы(image, label и ...

Обращение к элементам класса через []
Пишу класс для работы с комплексными числами, почти все готово, осталось только 1 задание.

Обращение к элементам формы из класса
Как из класса test.cs присвоить значение textbox1 из формы Form1?


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

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

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