Форум программистов, компьютерный форум, киберфорум
C# для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.71/7: Рейтинг темы: голосов - 7, средняя оценка - 4.71
2 / 2 / 0
Регистрация: 04.06.2013
Сообщений: 44

Перегрузка методов и определение типа переменных (int, double, string)

22.02.2015, 16:26. Показов 1530. Ответов 2
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Идея в том, чтобы определить, что ввел пользователь: тип double, integer или string, и сложить эти 2 переменные с помощью перегруженного метода.
Моя проблема в том, что я не могу получить xTrue и yTrue для выполнения задачи, т.к., как я понял, эти xTrue и yTrue создаются в if и там же остаются - не переходят в дальнейший кусок кода.
Возможно, я пытаюсь сделать это через *опу, но пока не знаю, как можно по-другому.
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
         namespace ConsoleApplication6
{
    class Program
    {
        static void Main(string[] args)
        {
            int yInt = 0; double yDouble = 0; string yString = "0";
            int xInt = 0; double xDouble = 0; string xString = "0";
 
            Console.Write("Enter any numbers of symbols: ");        
            var x = Console.ReadLine();
 
            //КОНВЕРТИРУЮ x В ПОДХОДЯЩИЙ ТИП                 
            if (Int32.TryParse(x, out xInt))
                xInt = Convert.ToInt32(x);
            else if(Double.TryParse(x, out xDouble))
                xDouble = Convert.ToDouble(x);
            else
                xString = Convert.ToString(x);
            //КОНВЕРТИРУЮ x В ПОДХОДЯЩИЙ ТИП  
 
          Console.Write("\nEnter any numbers of symbols again: ");
          var y = Console.ReadLine();
 
            //КОНВЕРТИРУЮ y В ПОДХОДЯЩИЙ ТИП
          if (Int32.TryParse(y, out xInt))
              yInt = Convert.ToInt32(y);
          else if (Double.TryParse(y, out xDouble))
              yDouble = Convert.ToDouble(y);
          else
              yString = Convert.ToString(y);
            //КОНВЕРТИРУЮ y В ПОДХОДЯЩИЙ ТИП
            
          if (xInt != 0)
          { int xTrue = xInt; }
          if (xDouble != 0)
          { double xTrue = xDouble; }
          if (xString != "0")
          { string xTrue = xString; }
 
          if (yInt != 0)
          { int yTrue = yInt; }
          if (yDouble != 0)
          { double yTrue = xDouble; }
          if (yString != "0")
          { string yTrue = yString; }
 
          Console.Write("\nResult: {0}", sum(xTrue, yTrue)); //Здесь компилятор пишет, что xTrue и yTrue не существуют.
          Console.ReadLine();
          }
 
        static int sum(int x, int y) 
        { return x + y; }
        static string sum(string x, string y)
        { return x + y; }
        static double sum(double x, double y)
        { return x + y; }
        
 
    }
}
Подскажите пожалуйста решение моей задачи.. ну или хотя бы направление. Спасибо!
P.S. Извините, если это похоже на быдлокод. Я только учусь.
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
22.02.2015, 16:26
Ответы с готовыми решениями:

Перегрузка типа int и double и сортировка
Дано задание: В одномерном массиве состоящем из n элементов вычислить: 1 номер минимального по модулю элемента. 2 сумму модулей...

Как преобразовать число типа int в строку типа string без методов-конвертов на C#?
В общем, все что выше написано. Пишу в Visual Studio на C#. Преобразовать без конвертирования, например, дано int, дано string, и это число...

Как из числа типа double сделать int (сохранение целой и дробной части в отдельных целочисленных переменных)
Например есть число double d = 123.4567 Как сделать что бы int i1 = 123; int i2 =4567;

2
 Аватар для tarasalk
1992 / 1216 / 440
Регистрация: 13.06.2013
Сообщений: 4,115
22.02.2015, 17:00
Цитата Сообщение от Surges Посмотреть сообщение
//Здесь компилятор пишет, что xTrue и yTrue не существуют.
Почитайте про область видимости переменных.
Вы их объявляете в
C#
1
if() {//тут}
. Поэтому за пределами скобок этих переменных нет.

Метод "sum" бессмысленный. Почему просто не сложить две переменные?

Цитата Сообщение от Surges Посмотреть сообщение
//КОНВЕРТИРУЮ y В ПОДХОДЯЩИЙ ТИП
Вместо того чтобы писать это в начале и в конце блока, можно юзать такое:
C#
1
2
3
#region MyRegion
 // ваше код           
#endregion
Много дублирующего кода. Вынесите их в методы.
1
871 / 721 / 304
Регистрация: 15.04.2013
Сообщений: 2,047
Записей в блоге: 5
22.02.2015, 20:07
Surges,
К тому же и так если у TryParse получится конвертировать строку в необходимый тип, то он и запишет само значение то есть вместо
C#
1
2
 if (Int32.TryParse(x, out xInt))
                xInt = Convert.ToInt32(x);
можно писать
C#
1
 if (Int32.TryParse(x, out xInt)) {}
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
22.02.2015, 20:07
Помогаю со студенческими работами здесь

Написать функцию int Search ( double A[], int n , double x), которая находит в массиве double A[n] элемент, значение которого равно x
Написать функцию int Search ( double A, int n , double x), которая находит в массиве double A элемент, значение которого равно x. Функция...

Перегрузка функции int double
Напишите функцию max с переменным количеством параметров, которая находит минимальное из чисел типа int или из чисел типа double, тип...

Вызов переменной типа int и типа double из нескольких форм
У меня такой случай: мне нужно из вызвать переменные типа double (double RDW = 0.0; RDW = Convert.ToInt32(textBox2.Text);) в Form10 из...

В массив типа double записываю целые числа (типа int), но ошибка не вылазиет!
Вот программулька: #include <iostream> using namespace std; #include <conio.h> int main() { double arr={1,2,3,4,5}; ...

Запись информации из вектора типа string в вектор типа double
Как записать только числа , которые хранятся в векторе типа стринг, в вектор типа дабл, в векторе типа стринг есть как буквы так и числа ,...


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

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Работа со звуком через SDL3_mixer
8Observer8 08.02.2026
Содержание блога Пошагово создадим проект для загрузки звукового файла и воспроизведения звука с помощью библиотеки SDL3_mixer. Звук будет воспроизводиться по клику мышки по холсту на Desktop и по. . .
SDL3 для Web (WebAssembly): Основы отладки веб-приложений на SDL3 по USB и Wi-Fi, запущенных в браузере мобильных устройств
8Observer8 07.02.2026
Содержание блога Браузер Chrome имеет средства для отладки мобильных веб-приложений по USB. В этой пошаговой инструкции ограничимся работой с консолью. Вывод в консоль - это часть процесса. . .
SDL3 для Web (WebAssembly): Обработчик клика мыши в браузере ПК и касания экрана в браузере на мобильном устройстве
8Observer8 02.02.2026
Содержание блога Для начала пошагово создадим рабочий пример для подготовки к экспериментам в браузере ПК и в браузере мобильного устройства. Потом напишем обработчик клика мыши и обработчик. . .
Философия технологии
iceja 01.02.2026
На мой взгляд у человека в технических проектах остается роль генерального директора. Все остальное нейронки делают уже лучше человека. Они не могут нести предпринимательские риски, не могут. . .
SDL3 для Web (WebAssembly): Вывод текста со шрифтом TTF с помощью SDL3_ttf
8Observer8 01.02.2026
Содержание блога В этой пошаговой инструкции создадим с нуля веб-приложение, которое выводит текст в окне браузера. Запустим на Android на локальном сервере. Загрузим Release на бесплатный. . .
SDL3 для Web (WebAssembly): Сборка C/C++ проекта из консоли
8Observer8 30.01.2026
Содержание блога Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
SDL3 для Web (WebAssembly): Установка Emscripten SDK (emsdk) и CMake для сборки C и C++ приложений в Wasm
8Observer8 30.01.2026
Содержание блога Для того чтобы скачать Emscripten SDK (emsdk) необходимо сначало скачать и уставить Git: Install for Windows. Следуйте стандартной процедуре установки Git через установщик. . . .
SDL3 для Android: Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 29.01.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами. Версия v3 была полностью переписана на Си, в. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru