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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 27.03.2014, 20:02   #1
IT-Lopata
7 - классник
Форумчанин
 
Аватар для IT-Lopata
 
Регистрация: 27.03.2014
Сообщений: 181
Вопрос почему не работает рекурсия

вот код.
Код:
namespace ConsoleApplication
{
    class Program
    {

        public void recurse(int i) 
        {
            if (i > 0)
            {
                Console.WriteLine("recurse {0}", i);
                i--;
                recurse(i);
            }
        }

        static void Main(string[] args)
        {
            recurse(5);

            Console.ReadLine();


        }
    }
}
ошибка
Цитата:
Program.cs(22,13): error CS0120: An object reference is required for the nonstatic field, method, or property 'ConsoleApplication.Program.recurse (int)'

Последний раз редактировалось Stilet; 27.03.2014 в 20:33.
IT-Lopata вне форума Ответить с цитированием
Старый 27.03.2014, 20:11   #2
Guy
Форумчанин
 
Регистрация: 15.12.2010
Сообщений: 398
По умолчанию

public static void recurse(int i)
Guy вне форума Ответить с цитированием
Старый 27.03.2014, 20:22   #3
IT-Lopata
7 - классник
Форумчанин
 
Аватар для IT-Lopata
 
Регистрация: 27.03.2014
Сообщений: 181
По умолчанию

спс, а почему она должна быть статической ?
IT-Lopata вне форума Ответить с цитированием
Старый 27.03.2014, 20:33   #4
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Потому что ты вызываешь ее из статической Main().
Если бы ты создавал класс и отдельно вызывал этот метод в созданном объекте класса, тогда статикой делать не обязательно.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 27.03.2014, 20:51   #5
IT-Lopata
7 - классник
Форумчанин
 
Аватар для IT-Lopata
 
Регистрация: 27.03.2014
Сообщений: 181
По умолчанию

Stilet, ок.
А можно сделать процедуру просто в нейм спейсе (namespace)? без какого либо класса?

я попытался ошибка
program.cs(8,6): error CS0116: A namespace does not directly contain members such as fields or methods
IT-Lopata вне форума Ответить с цитированием
Старый 27.03.2014, 21:11   #6
pu4koff
Старожил
 
Аватар для pu4koff
 
Регистрация: 22.05.2007
Сообщений: 9,065
По умолчанию

Шарп процедуры не умеет, только методы, т.е. без класса никуда.
pu4koff вне форума Ответить с цитированием
Старый 27.03.2014, 21:29   #7
eval
Подтвердите свой е-майл
 
Регистрация: 29.08.2012
Сообщений: 4,011
По умолчанию

Цитата:
А можно сделать процедуру просто в нейм спейсе (namespace)? без какого либо класса?
а можно почитать учебник а не спрашивать глупости?
eval вне форума Ответить с цитированием
Старый 27.03.2014, 21:47   #8
IT-Lopata
7 - классник
Форумчанин
 
Аватар для IT-Lopata
 
Регистрация: 27.03.2014
Сообщений: 181
По умолчанию

Цитата:
т.е. без класса никуда.
ок, спс.

А как использовать класс из другого неймспейс без префикса?

Код:
using System;
using System.Collections.Generic;
using System.Text;

namespace Ns2 
{
    public class SaperskaLopata
    {
        public void Show()
        {
            Console.WriteLine("Саперская лопата");
        }
    }
}

namespace ConsoleApplication5
{
    


    class Program
    {

        public static void recurse(int i) 
        {
            if (i > 0)
            {
                Console.WriteLine("recurse {0}", i);
                i--;
                recurse(i);
            }
        }


        static void Main(string[] args)
        {
            recurse(5);
            Ns2.SaperskaLopata lopata = new Ns2.SaperskaLopata();
            lopata.Show();


            Console.ReadLine();


        }
    }
}
Цитата:
а можно почитать учебник а не спрашивать глупости?
у меня открыт и я постоянно листаю - Полный справочник по C# герберд шилдт. отличная книга (у меня по яве аналогичная толстенная). но есть вопросы которые нужно оперативно решить. поэтому глупость не спрашивать, в морду никто не ударит.

Последний раз редактировалось IT-Lopata; 27.03.2014 в 21:54.
IT-Lopata вне форума Ответить с цитированием
Старый 27.03.2014, 21:52   #9
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
как использовать класс из другого неймспейс без префикса?
Зачем?? О_о
Если не очень хочется префиксы писать вверху в using напиши путь к классу.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 27.03.2014, 22:17   #10
eval
Подтвердите свой е-майл
 
Регистрация: 29.08.2012
Сообщений: 4,011
По умолчанию

Цитата:
у меня открыт и я постоянно листаю
читать пробовали? говорят помогает
eval вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
почему работает рекурсия ryouzaki Помощь студентам 1 02.11.2013 19:10
Почему программа на С++ не работает с локальным описанием массива, но работает с глобальным? >>STINGER<< Помощь студентам 4 08.03.2011 09:56
Не работает рекурсия theroket Помощь студентам 7 19.12.2010 16:27
почему интеренет на Xp не работает, а на семерке работает Lenura Windows 18 04.10.2010 12:04
Рекурсия. Не корректно работает прога Driver_09 Помощь студентам 0 23.12.2009 20:02