Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > .NET Frameworks (точка нет фреймворки) > C# (си шарп)
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 25.06.2018, 10:12   #1
Мaкс
Форумчанин
 
Регистрация: 12.06.2018
Сообщений: 831
Вопрос Программа не видит метод.

Программа не видит метод Konstructor. Почему так происходит? Ведь метод содержит 3 аргумента
Код:
(string st, double sb1, double sb2)
так же где вызываются методы:

Код:
Konstructor2 kon = new Konstructor("квадратный", 5.0, 5.0);
и с какого перепугу он не видит метод?

Ниже код:

Код:
using System;
class Konstructor {
    
    double length, width;

    public double Length
    {
        get
        {
            return length;
        }
        set
        {
            length = value < 0 ? -value : value;
        }
    }

    public double Width
    {
        get
        {
            return width;
        }
        set
        {
            width = value < 0 ? -value : value;
        }
    }

    public void Show_a_b()
    {
        Console.WriteLine("Длинна ровна " + Length + ", ширина ровна " + Width);
    }
}

class Konstructor2 : Konstructor {
    string type;
    public void Konstructor (string st, double sb1, double sb2)
    {
        type = st;
        Length = sb1;
        Width = sb2;
    }
    public void Show_type()
    {
        Console.WriteLine(type);
    }
}

class Program {
    static void Main()
    {
        Konstructor2 kon = new Konstructor("квадратный", 5.0, 5.0);
        Konstructor2 kon2 = new Konstructor("прямоугольный", 20.0, 8.0);
        Console.WriteLine("Информация о объекте 1:");
        kon.Show_a_b();
        kon.Show_type();
        Console.WriteLine("Информация о объекте 2:");
        kon2.Show_a_b();
        kon2.Show_type();
        Console.ReadKey();
    }
}
Мaкс вне форума Ответить с цитированием
Старый 25.06.2018, 10:14   #2
Мaкс
Форумчанин
 
Регистрация: 12.06.2018
Сообщений: 831
Сообщение

Вот:
Изображения
Тип файла: jpg 4.jpg (95.4 Кб, 147 просмотров)
Мaкс вне форума Ответить с цитированием
Старый 25.06.2018, 10:47   #3
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,238
По умолчанию

а что у Вас вызывает вопросы? Класс Konstructor не содержит конструктор с указанными параметрами.
Вы с этим не согласны?

может быть, Вы не знаете, что такое конструктор класса?
тогда ознакомьтесь с основами.
например,
https://docs.microsoft.com/ru-ru/dot...s/constructors
https://professorweb.ru/my/csharp/ch...level5/5_5.php

Последний раз редактировалось Serge_Bliznykov; 25.06.2018 в 10:50.
Serge_Bliznykov вне форума Ответить с цитированием
Старый 25.06.2018, 10:50   #4
Мaкс
Форумчанин
 
Регистрация: 12.06.2018
Сообщений: 831
По умолчанию

Цитата:
Сообщение от Serge_Bliznykov Посмотреть сообщение
Вы с этим не согласны?
Нет:
Konstructor == Konstructor (вызыв == метод)
"квадратный", 5.0, 5.0 == string st, double sb1, double sb2

И почему ошибка??
Мaкс вне форума Ответить с цитированием
Старый 25.06.2018, 10:54   #5
p51x
Старожил
 
Регистрация: 15.02.2010
Сообщений: 15,695
По умолчанию

Потому что у конструкторов есть "зарезервированный" синтаксис. Если хотите просто вызвать метод Konstructor, тогда не ставьте перед ним new.
p51x вне форума Ответить с цитированием
Старый 25.06.2018, 11:02   #6
Мaкс
Форумчанин
 
Регистрация: 12.06.2018
Сообщений: 831
По умолчанию

Та проблема ушла, но пришла другая: "Невызываемый член "Konstructor" не может использоваться как метод."
А что с этим делать?
Мaкс вне форума Ответить с цитированием
Старый 25.06.2018, 11:06   #7
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,238
По умолчанию

Цитата:
Сообщение от Мaкс Посмотреть сообщение
"Невызываемый член "Konstructor" не может использоваться как метод."
так Вы же пытаетесь присвоить объекту значение, которое возвращает метод.

а что он возвращает?
Цитата:
Сообщение от Мaкс Посмотреть сообщение
Код:
public void Konstructor
я уже молчу о том, что это метод класса, а экземпляр это класса ещё не создан.
Этот метод можно вызвать только после того, как создан объект.

например,
Код:
       Konstructor2 kon = new Konstructor2();
       kon.Konstructor("квадратный", 5.0, 5.0);
не проверял. пишу примерно.



Цитата:
Сообщение от Мaкс Посмотреть сообщение
А что с этим делать?
не писать неправильно.

Последний раз редактировалось Serge_Bliznykov; 25.06.2018 в 11:11.
Serge_Bliznykov вне форума Ответить с цитированием
Старый 25.06.2018, 11:08   #8
Мaкс
Форумчанин
 
Регистрация: 12.06.2018
Сообщений: 831
По умолчанию

Цитата:
Сообщение от Serge_Bliznykov Посмотреть сообщение
а что он возвращает?
void буду изучать когда будет LINQ, я не знаю что такое void
Мaкс вне форума Ответить с цитированием
Старый 25.06.2018, 11:18   #9
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,238
По умолчанию

Цитата:
Сообщение от Мaкс Посмотреть сообщение
void буду изучать когда будет LINQ, я не знаю что такое void
void к LINQ отношения не имеет.

и посмотрите мой пост выше. я дополнил свой ответ.
Serge_Bliznykov вне форума Ответить с цитированием
Старый 25.06.2018, 11:30   #10
Мaкс
Форумчанин
 
Регистрация: 12.06.2018
Сообщений: 831
По умолчанию

Короче, я делал на угад и у меня сработало так:
1)Изменил название конструктора: Konstructor на Konstructor2
2)Обратно добавил new где нужно было вызывать.
И всё сработало. Смотрю Вики бесполезно использовать, так как там есть то что я не изучал, и поэтому пример уже не годен.

Что бы не создавать другую тему: как посмотреть кто и за что поставил отзыв?
Мaкс вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
срочно нужна программа на c/с++: метод метод Дэвидона–Флетчера–Пауэлла. найти стационарные точки (минимум и седловую точку) Elanta Фриланс 4 12.05.2014 14:13
Не видит когда соврачивается чужая программа Amilman Общие вопросы Delphi 0 04.08.2013 22:41
Программа не видит ini-файл AlexPv Помощь студентам 4 01.06.2012 12:01
После копирования программа не видит файл. Delphi BeLuY Помощь студентам 9 09.10.2011 15:43
С++: программа не видит терминатор инструкции((( Blondy Помощь студентам 3 25.02.2011 17:38