
Вопрос задан 17.05.2023 в 12:13.
Предмет Информатика.
Спрашивает Белов Андрей.
Using System; using System.Collections.Generic; using System.Linq; using System.Text; namespace
ConsoleApplication1 { class Program { static void Main(string[] args) { Peregruzka test1 = new Peregruzka(); Peregruzka test2 = new Peregruzka(); Peregruzka test3 = new Peregruzka(); test1.method(); test2.method("Hello"); test3.method("Hello", "_World"); Console.WriteLine("Вызов методов: \n1){0} \n2){1} \n3){2}", test1.s, test2.s, test3.s); TestStructura structura; structura.x = 999; structura.s = "Structura"; Console.WriteLine("x = {1}, s= {0}", structura.s,structura.x); Console.ReadKey(); } } class Peregruzka { public string s; public string method() { return s = "Пусто"; } public string method(string param1) { return s = param1; } public string method(string param1, string param2) { return s = param1 + param2; } } public string method() { return s = param1; } struct TestStructura { public int x; public string s; } } Указывает ошибку в строке public string method() { return s = param1; } Требуется класс делегат

Ответы на вопрос

Отвечает Кот Ренат.
Ошибка в том, что метод расположен в пространстве имен, а не в классе или структуре. Но даже если переместить его в класс Peregruzka, то всё равно будет ошибка, так как метод с такой сигнатурой уже есть. Решение - закомментировать этот метод (к тому же в нём есть ошибка). Решение во вложении.




Отвечает нейросеть ChatGpt. Будьте внимательны, ответы нейросети могут содержать ошибочные или выдуманные данные.
Ошибку в вашем коде можно исправить, добавив класс-делегат в вашу программу. Вот исправленный код:
csharpusing System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace ConsoleApplication1
{
// Класс делегат
delegate string MyDelegate();
class Program
{
static void Main(string[] args)
{
Peregruzka test1 = new Peregruzka();
Peregruzka test2 = new Peregruzka();
Peregruzka test3 = new Peregruzka();
test1.method();
test2.method("Hello");
test3.method("Hello", "_World");
Console.WriteLine("Вызов методов: \n1){0} \n2){1} \n3){2}", test1.s, test2.s, test3.s);
TestStructura structura;
structura.x = 999;
structura.s = "Structura";
Console.WriteLine("x = {1}, s= {0}", structura.s, structura.x);
Console.ReadKey();
}
}
class Peregruzka
{
public string s;
public string method()
{
return s = "Пусто";
}
public string method(string param1)
{
return s = param1;
}
public string method(string param1, string param2)
{
return s = param1 + param2;
}
}
struct TestStructura
{
public int x;
public string s;
}
}
В этом коде я добавил объявление класса делегата MyDelegate
перед объявлением класса Program
. Теперь у вас есть класс делегат, который можно использовать для создания делегатов и передачи методов в качестве параметров. Обратите внимание, что в коде используется несколько перегруженных методов method()
в классе Peregruzka
, чтобы демонстрировать их использование.


Топ вопросов за вчера в категории Информатика

Информатика 558

Информатика 33

Информатика 74

Информатика 12

Информатика 10

Информатика 33

Информатика 27
Последние заданные вопросы в категории Информатика
Предметы
-
Математика
-
Литература
-
Алгебра
-
Русский язык
-
Геометрия
-
Английский язык
-
Химия
-
Физика
-
Биология
-
Другие предметы
-
История
-
Обществознание
-
Окружающий мир
-
География
-
Українська мова
-
Информатика
-
Українська література
-
Қазақ тiлi
-
Экономика
-
Музыка
-
Право
-
Беларуская мова
-
Французский язык
-
Немецкий язык
-
МХК
-
ОБЖ
-
Психология
-
Физкультура и спорт
-
Астрономия
-
Кыргыз тили
-
Оʻzbek tili