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

Ошибка при инициализации переменной делегатного типа

20.03.2016, 18:59. Показов 1442. Ответов 7
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Нет в контексе removeSpaces
Собственно вот код:

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
62
/*
 * Created by SharpDevelop.
 * User: User
 * Date: 20.03.2016
 * Time: 15:15
 * 
 * To change this template use Tools | Options | Coding | Edit Standard Headers.
 */
using System;
 
namespace Delegate1
{
    delegate string fas(string str);
    class DelTest
    {
        static string replaceSpaces(string a)
        {
            Console.WriteLine("Замена пробелов дефисами");
            return a.Replace(' ','-');
        }
        static string removeSpaces(string a)
        {
            string tmp = "";
            int i;
            Console.WriteLine("Удаление пробелов");
            
            for (i=0;i<a.Length;i++)
                if (a[i]!=' ')
                    tmp+=a[i];
            return tmp;
        }
        static string reverseStr(string a)
        {
            int i;
            string tmp="";
            
            for (i=0;i<a.Length;i++)
                tmp+=a[a.Length-i-1];
            
            return tmp;
        }
    }
    class Program
    {
        public static void Main(string[] args)
        {
            fas a = new fas(removeSpaces);
            string str;
            
            str = Console.ReadLine();
            
            str = a(str);
            
            Console.WriteLine(str);
            
            // TODO: Implement Functionality Here
            
            Console.Write("Press any key to continue . . . ");
            Console.ReadKey(true);
        }
    }
}
0
Лучшие ответы (1)
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
20.03.2016, 18:59
Ответы с готовыми решениями:

Ошибка при создании переменной делегатного типа
class test_delegat { static int summa_a_b(int a, int b) { return a + b; } } delegate int Dsumma(int a,...

Ошибка инициализации переменной заданного типа
Ошибка в 45ой и 59ой строках. Подскажите, как все-же правильно инициализировать переменную t типа &quot;rabotnik&quot;? /* Исходный...

Указание типа переменной и ссылки при объявлении\инициализации
Здравствуйте! Возник такой вопрос-зачем нужно указывать тип ссылки при ее инициализации? При объявлении обычной переменной, компилятору...

7
Эксперт .NET
 Аватар для Даценд
5878 / 4755 / 2939
Регистрация: 20.04.2015
Сообщений: 8,361
20.03.2016, 19:17
C#
1
fas a = new fas(DelTest.removeSpaces);
А еще removeSpaces должен быть public.
1
38 / 38 / 52
Регистрация: 03.02.2016
Сообщений: 99
20.03.2016, 19:19
Лучший ответ Сообщение было отмечено NewNoob как решение

Решение

В классе DelTest сделайте свои static методы еще и public.
и раз уж они статик, то обращаться нужно соответственно. (DelTest."Имя метода").
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
public static void Main(string[] args)
        {
            fas a = new fas(DelTest.removeSpaces);
            string str;
            
            str = Console.ReadLine();
            
            str = a(str);
            
            Console.WriteLine(str);
            
            // TODO: Implement Functionality Here
            
            Console.Write("Press any key to continue . . . ");
            Console.ReadKey(true);
        }
1
6 / 10 / 2
Регистрация: 29.05.2015
Сообщений: 661
21.03.2016, 20:47  [ТС]
zSerhei, в книге пример.

Добавлено через 17 минут
zSerhei, спасибо. Ну в книге такой пример(

Добавлено через 10 минут
Даценд, а зачем вообще нужны делегаты?
0
38 / 38 / 52
Регистрация: 03.02.2016
Сообщений: 99
21.03.2016, 22:50
https://youtu.be/uI3rZYk2sYk?l... IytrMiR5TC
Посмотрите это видео, вполне доходчиво все. У него там уже много видео, сам смотрю, только хорошее впечатление оставляет просмотр. И лучше всего начать смотреть с 1 урока.
Я не знаю в какой книге вы взяли такой пример, скорее всего это просто опечатка, такое бывает.
Почитайте Шилдт Г. - C# 4.0 полное руководство - 2011. Внятный мужик, толково объясняет с хорошими примерами.
0
6 / 10 / 2
Регистрация: 29.05.2015
Сообщений: 661
21.03.2016, 22:57  [ТС]
zSerhei, c Шилдта и беру.
0
38 / 38 / 52
Регистрация: 03.02.2016
Сообщений: 99
21.03.2016, 23:01
Его
C#
1
  class DelTest
, это ваш
C#
1
class Program
, внимательно посмотрите)), он просто его переименовал. И тогда ничего не нужно модифицировать, все работает правильно.
0
6 / 10 / 2
Регистрация: 29.05.2015
Сообщений: 661
21.03.2016, 23:33  [ТС]
Чёрт,я слепой)
Вот же,как вы говорили:
C#
1
2
3
4
5
6
7
class DelegateTest {
public static void Main() {
StringOps so = new StringOps(); // Создаем экземпляр
// класса StringOps.
// Создаем делегат.
strMod strOp = new strMod(so.replaceSpaces);
string str;
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
21.03.2016, 23:33
Помогаю со студенческими работами здесь

Для чего при инициализации переменной писать на конце числа первую букву типа?
Например, long long a=123456789123344LL чем будет отличаться от long long a=123456789123344 ?

Ошибка при инициализации статистической переменной.
Ребят есть задание: В класс строки (пользовательский класс ) добавить статическую защищенную (protected) переменную &quot;счетчик...

Ошибка инициализации переменной при чтении структурированного файла
Почему выдаёт ошибку: &quot;Использована неинициализированная локальная переменная &quot;rr&quot;.&quot; При таком же использовании такого же...

В новом описанном классе при инициализации переменной вылетает ошибка.
type TForm1 = class(TForm) MainMenu1: TMainMenu; procedure FormCreate(Sender: TObject); private { Private...

Странная ошибка при присвоении типа переменной
Странные вещи происходят: пишу Dim SheetsA As Excel.Sheets Set SheetsA = Application.Sheets(ActiveSheet.Name)Выдает ошибку 13 (Тип не...


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

Или воспользуйтесь поиском по форуму:
8
Ответ Создать тему
Новые блоги и статьи
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