Форум программистов, компьютерный форум, киберфорум
C# для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.54/56: Рейтинг темы: голосов - 56, средняя оценка - 4.54
 Аватар для Бедел
235 / 31 / 11
Регистрация: 04.06.2010
Сообщений: 293

Как вызвать функцию из другого проекта ?

24.03.2014, 00:25. Показов 11984. Ответов 15
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Добрый вечер, уважаемые форумчане !

Передо мной стоит несложная задача, в которой требуется реализация деление двух дробей. Сложность состоит в том, что нужно разбить задачу на несколько проектов..

Решил представить декомпозицию в следующем виде:


В проекте Ввод_дробей имеется класс Ввод. В этом классе я реализовал функцию ввода двух дробей с клавиатуры. Теперь передо мной встала задача вызвать эту функцию в проекте Лаб_13, а именно в классе Деление_дробей. С помощью using я добавил в нём Ввод_дробей. Как вызвать функцию ?

Заранее большое спасибо за любую помощь)
0
Лучшие ответы (1)
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
24.03.2014, 00:25
Ответы с готовыми решениями:

Вызвать функцию с другого класса
Есть код для открытия Excel и экспорта в него текстовых значений using System; using System.Collections.Generic; using System.Linq; ...

Как вызвать метод из другого класса?
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace...

Как вызвать в Main метод из другого класса?
Задачка на среднее арифметическое. Создал класс "Array", в котором происходит заполнение массива числами, затем числа из массива и...

15
 Аватар для nio
6050 / 3460 / 336
Регистрация: 14.06.2009
Сообщений: 8,136
Записей в блоге: 2
24.03.2014, 00:34
в таком случае все проекты кроме главного компилируются в dll. Потом в References требуемого проекта подключается проект-источник, и в нужном классе прописывается пространство имён класса, в котором расположен нужный метод
1
 Аватар для Бедел
235 / 31 / 11
Регистрация: 04.06.2010
Сообщений: 293
24.03.2014, 00:38  [ТС]
nio, Вы имеете в виду, что надо в проекте Лаб_13 в Ссылки добавить проект Ввод_дробей ?
Я это уже сделал. Вот скрин:

Теперь мне нужно как-нибудь вызвать эту функцию...
0
 Аватар для nio
6050 / 3460 / 336
Регистрация: 14.06.2009
Сообщений: 8,136
Записей в блоге: 2
24.03.2014, 00:48
Бедел, ну теперь как и в одном проекте всё: делаешь экземпляр класса "Ввод" и вызываешь свой метод
1
 Аватар для Бедел
235 / 31 / 11
Регистрация: 04.06.2010
Сообщений: 293
24.03.2014, 00:52  [ТС]
nio, так и пытаюсь сделать, но что-то делаю не так...
0
 Аватар для nio
6050 / 3460 / 336
Регистрация: 14.06.2009
Сообщений: 8,136
Записей в блоге: 2
24.03.2014, 00:55
drobi != drob1
1
 Аватар для Бедел
235 / 31 / 11
Регистрация: 04.06.2010
Сообщений: 293
24.03.2014, 00:57  [ТС]
Цитата Сообщение от nio Посмотреть сообщение
drobi != drob1
Это было исправлено после того, как я сделал первый скрин Так что проблема не в этом.. В инете тоже ничего дельного найти не могу..
0
 Аватар для nio
6050 / 3460 / 336
Регистрация: 14.06.2009
Сообщений: 8,136
Записей в блоге: 2
24.03.2014, 00:59
Цитата Сообщение от Бедел Посмотреть сообщение
Это было исправлено
покажи текущий код класса
0
 Аватар для Бедел
235 / 31 / 11
Регистрация: 04.06.2010
Сообщений: 293
24.03.2014, 01:01  [ТС]
Вот текущий код класса Ввод:
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
 
namespace Ввод_дробей
{
    public class Ввод
    {        
        public int x1, x2, y1, y2;
        public void drobi()
        {
            Console.WriteLine("Введите числитель первой дроби: ");
            x1 = Convert.ToInt32(Console.ReadLine());
            Console.WriteLine("Введите знаменатель первой дроби: ");
            x2 = Convert.ToInt32(Console.ReadLine());
            Console.WriteLine("Введите числитель второй дроби: ");
            y1 = Convert.ToInt32(Console.ReadLine());
            Console.WriteLine("Введите числитель второй дроби: ");
            y2 = Convert.ToInt32(Console.ReadLine());
        }
    }
}
Вот текущий код класса Деление_дробей:
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using Ввод_дробей;
 
namespace Лаб_13_Бадалов_
{
    class Деление_дробей
    {
        Ввод_дробей.Ввод V = new Ввод_дробей.Ввод();
        V.drobi();
    }
}
0
 Аватар для nio
6050 / 3460 / 336
Регистрация: 14.06.2009
Сообщений: 8,136
Записей в блоге: 2
24.03.2014, 01:14
ну вот у себя сделал
C#
1
2
3
4
5
6
7
8
9
10
namespace TestC
{
    public class Test111
    {
        public void TestMethod()
        {
            Console.WriteLine("It's the test");
        }
    }
}
C#
1
2
3
4
5
6
7
8
9
10
11
namespace TestConsole
{
    class Program
    {
        static void Main(string[] args)
        {
            var t = new TestC.Test111();
            t.TestMethod();
        }
    }
}
Все нормально работает. Попробуй сделать ребилд для солюшена
1
 Аватар для Бедел
235 / 31 / 11
Регистрация: 04.06.2010
Сообщений: 293
24.03.2014, 01:14  [ТС]
nio, может попробовать класс Ввод сделать статическим ? Тогда не придётся создавать экзампляр этого класса. Как в таком случае вызвать наш метод ? Или же лучше через объект вызывать ? Просто никак не могу понять, как вызвать метод...
0
 Аватар для nio
6050 / 3460 / 336
Регистрация: 14.06.2009
Сообщений: 8,136
Записей в блоге: 2
24.03.2014, 01:18
Цитата Сообщение от Бедел Посмотреть сообщение
может попробовать класс Ввод сделать статическим
нет необходимости. Сначала ребилд
0
 Аватар для Бедел
235 / 31 / 11
Регистрация: 04.06.2010
Сообщений: 293
24.03.2014, 01:23  [ТС]
nio, Вы создаете экзампляр класса и вызываете метод в функции Main. Я ведь не с этим классом работаю) Я работаю с классом Ввод_дробей. Только не пойму, почему так получается..

P.S. в функции main экземпляр успешно создается и метод вызывается корректно.

Добавлено через 3 минуты
У меня в запускаемом проекте два класса: Program.cs и Ввод_дробей.cs
0
 Аватар для nio
6050 / 3460 / 336
Регистрация: 14.06.2009
Сообщений: 8,136
Записей в блоге: 2
24.03.2014, 01:35
Лучший ответ Сообщение было отмечено Бедел как решение

Решение

Бедел, проблема в том, что ты пытаешься вызвать "чужой" метод прямо в коде класса, а не в каком-то методе. Методы не вызываются из тела самого класса

Добавлено через 1 минуту
C#
1
2
3
4
5
6
7
8
9
10
11
namespace TestConsole
{
    public static class Test2
    {
        void Method()
        {
            var t = new TestC.Test111();
            t.TestMethod();
        }
    }
}
1
 Аватар для Бедел
235 / 31 / 11
Регистрация: 04.06.2010
Сообщений: 293
24.03.2014, 01:41  [ТС]
Цитата Сообщение от nio Посмотреть сообщение
ты пытаешься вызвать "чужой" метод прямо в коде класса, а не в каком-то методе.
А нельзя было с этого начинать ?
Спасибо большое, проблема решена)) Просто обернул вызов метода через экзампляр внутрь другого метода))
0
24.03.2014, 01:49

Не по теме:

Цитата Сообщение от Бедел Посмотреть сообщение
А нельзя было с этого начинать ?
да я как-то сам не допёр сразу, что такое может быть :pardon: В код сильно не вглядывался, на вскидку всё прилично было...

0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
24.03.2014, 01:49
Помогаю со студенческими работами здесь

Как запустить консоль из другого проекта?
Я добавил в ссылки WindowsFormsApp1 проекта ConsoleApp1 проект когда пишу private void button1_Click(object sender, EventArgs...

Как прочитать версию другого проекта?
В одном решении есть два проекта: №1 (запускаемый) и №2. В проекте №1 создана ссылка на проект №2. Так вот версию проекта №1 прочитать...

Как создать метод, чтобы его можно было бы вызвать из другого класса?
Как создать метод, чтобы его можно было бы вызвать из другого класса? Создаю в Form1.cs метод для рисования графика public ...

Обратиться из одного проекта к классу другого проекта
подскажите пожалуйста, как обратиться из одного проекта к классу другого проекта в таком случае: есть Solution в котором 2 проекта:...

Как сделать видимым internal class из другого проекта?
Добрый день. Есть класс объявленный как internal. И снимать модификатор доступа не хочется. Но для тестирования сделан отдельный...


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

Или воспользуйтесь поиском по форуму:
16
Ответ Создать тему
Новые блоги и статьи
Очистка реквизитов документа при копировании
Maks 09.04.2026
Алгоритм из решения ниже применим как для типовых, так и для нетиповых документов на самых различных конфигурациях. Задача: при копировании документа очищать определенные реквизиты и табличную. . .
модель ЗдравоСохранения 8. Подготовка к разному выполнению заданий
anaschu 08.04.2026
https:/ / github. com/ shumilovas/ med2. git main ветка * содержимое блока дэлэй из старой модели теперь внутри зайца новой модели 8ATzM_2aurI
Блокировка документа от изменений, если он открыт у другого пользователя
Maks 08.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа, разработанного в конфигурации КА2. Задача: запретить редактирование документа, если он открыт у другого пользователя. / / . . .
Система безопасности+живучести для сервера-слоя интернета (сети). Двойная привязка.
Hrethgir 08.04.2026
Далее были размышления о системе безопасности. Сообщения с наклонным текстом - мои. А как нам будет можно проверить, что ссылка наша, а не подделана хулиганами, которая выбросит на другую ветку и. . .
Модель ЗдрввоСохранения 7: больше работников, больше ресурсов.
anaschu 08.04.2026
работников и заданий может быть сколько угодно, но настроено всё так, что используется пока что только 20% kYBz3eJf3jQ
Дальние перспективы сервера - слоя сети с космологическим дизайном интефейса карты и логики.
Hrethgir 07.04.2026
Дальнейшее ближайшее планирование вывело к размышлениям над дальними перспективами. И вот тут может быть даже будут нужны оценки специалистов, так как в дальних перспективах всё может очень сильно. . .
Горе от ума
kumehtar 07.04.2026
Эта мне ментальная установка, что вот прямо сейчас, мол, мне для полного счастья не хватает (нужное вписать), и когда я этого достигну - тогда и полный кайф. Одна из самых сильных ловушек на пути. . . .
Использование значений реквизитов справочника в документе, с определенными условиями и правами
Maks 07.04.2026
1. Контроль срока действия договора Алгоритм из решения ниже реализован на примере нетипового документа "ЗаявкаНаРаботу", разработанного в конфигурации КА2. Задача: уведомлять пользователя, если. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru