Модераторы: Partizan, gambit
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Раздельное объявление и реализация в C# 
:(
    Опции темы
Titeha
Дата 2.9.2013, 08:45 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 6
Регистрация: 7.2.2010

Репутация: нет
Всего: нет



Добрый день!

В С++ имеется возможность в классе объявить какую-нибудь функцию (метод), а затем за пределами класса описать реализацию этого метода.  Есть ли такая возможность в C#?

Из того, что найдено на MSDN имеет очень серьёзные ограничения и для практического использования мало подходит. Возможно я не правильно задавал вопрос поисковой машине.

Спасибо

Это сообщение отредактировал(а) Titeha - 2.9.2013, 09:35
PM MAIL   Вверх
infarch
Дата 2.9.2013, 11:01 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 526
Регистрация: 13.3.2009

Репутация: 1
Всего: 1



На ум приходят только интерфейсы... Может приведете пример задачи для которой вам это нужно?
PM MAIL   Вверх
Fobos
Дата 2.9.2013, 11:47 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 105
Регистрация: 9.2.2008
Где: Москва

Репутация: нет
Всего: нет



Если я Вас правильно понял, ключевое слово partial Вас спасет.
PM MAIL ICQ   Вверх
Titeha
Дата 2.9.2013, 11:48 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 6
Регистрация: 7.2.2010

Репутация: нет
Всего: нет



Думал уже через интерфейсы. Возможно со временем так и сделаю.
Задача? Да собственно имеется класс. Реализация некоторых методов весьма громоздка, и смотреть что уже реализовано, что еще предстоит - трудоемкая задача при имеющемся раскладе. В Visual Studio есть, конечно, инструменты облегчающие жизнь программиста. Но с ведением лицензионной политики в Российских предприятиях (давай делай, платить за среду не будем) становиться грустно. Данные инструменты остаются в стороне. Приходиться ковырять в блокноте.

Добавлено через 1 минуту и 23 секунды
Цитата(Fobos @ 2.9.2013,  11:47)
Если я Вас правильно понял, ключевое слово partial Вас спасет.

из-за ограничений, накладываемых на partial такое решение возможно не всегда
PM MAIL   Вверх
Fobos
Дата 2.9.2013, 11:55 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 105
Регистрация: 9.2.2008
Где: Москва

Репутация: нет
Всего: нет



Цитата

Реализация некоторых методов весьма громоздка

Бороться со сложностью разбивая класс на более мелкие? Т.е. у класса можно выделить некие части в отдельные файлы? Т.е. класс выполняет много функций?
Проще наверное зарефакторить.
Хотя, на месте конечно виднее. 
Partial это в моем понимании самый подходящий функционал.
 Другого не найдете.
PM MAIL ICQ   Вверх
Titeha
Дата 3.9.2013, 03:15 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 6
Регистрация: 7.2.2010

Репутация: нет
Всего: нет



Цитата(Fobos @  2.9.2013,  11:55 Найти цитируемый пост)
класс выполняет много функций


Нет, стараюсь чтобы методов в классе было не много, просто некоторые методы довольно большие по количеству кода. Может и можно его разобрать на множество мелких, но на мой взгляд это не улучшит понимание кода человеком, который будет потом его читать. Плеваться и так будут, а в случае, если размажу код то еще и ядом.
PM MAIL   Вверх
Fobos
Дата 3.9.2013, 08:09 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 105
Регистрация: 9.2.2008
Где: Москва

Репутация: нет
Всего: нет



Я бы Вам посоветовал почитать о такой вещи как SOLID, если вдруг не читали. 
PM MAIL ICQ   Вверх
jonie
Дата 3.9.2013, 17:39 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 5613
Регистрация: 21.8.2005
Где: Владимир

Репутация: 22
Всего: 118



Цитата(Titeha @  2.9.2013,  12:48 Найти цитируемый пост)

из-за ограничений, накладываемых на partial такое решение возможно не всегда 

речь тут шла не о частичных функциях, а о частичных классах  - выносите хоть "по методу в файл".


--------------------
Что-то не поняли? -> Напейтесь до зеленых человечков... эта сверхцивилизация Вам поможет...
PM MAIL Jabber   Вверх
jsharp36
Дата 5.9.2013, 23:45 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 4
Регистрация: 8.10.2011

Репутация: нет
Всего: 1



"Нет, стараюсь чтобы методов в классе было не много, просто некоторые методы довольно большие по количеству кода."

Желательно, чтобы кода было мало в функциях, а они адекватно назывались, чтобы понятно было, что делают. А не наоборот - мало функций, много кода.

В С# разделить нельзя объявление от реализации. Разве что интерфейс. Но обычно они для только этого (навигации) не используются.

И главный вопрос. Причем лицензии? Поставьте себе бесплатную Express версию. Там функционала за глаза. Им обычно не пользуются никто (платную бесплатно ставят), но по опыту, ничего особо из платного не используется. Почти весь нужный функционал в экспресс есть.

Есть еще Mono. Видел раз издалека. Под винду тоже есть. Там бесплатная среда для разработки. Довольно таки приятная на вид.

Ну в очень крайнем случае ставьте это:
http://notepad-plus-plus.org/
Да и просто так его поставьте, пригодится. Это просто блокнот, он проекты не поддерживает, но блокнот необычный. Он поддерживает массу языков программирования - для них делает подсветку языка, схлопывание методов. Вашу проблему решит даже он.

Этот ответ добавлен с нового Винграда - http://vingrad.com
PM MAIL   Вверх
dzaraev
Дата 6.9.2013, 09:24 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 149
Регистрация: 12.1.2013

Репутация: нет
Всего: 1



Полностью поддерживаю jsharp36 и к альтернативам этерпрайзной студии добавляю http://ru.wikipedia.org/wiki/SharpDevelop
--------------------
Если вопрос решён - помечайте тему.  
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Прежде чем создать тему, посмотрите сюда:
mr.DUDA
THandle

Используйте теги [code=csharp][/code] для подсветки кода. Используйтe чекбокс "транслит" если у Вас нет русских шрифтов.
Что делать если Вам помогли, но отблагодарить помощника плюсом в репутацию Вы не можете(не хватает сообщений)? Пишите сюда, или отправляйте репорт. Поставим :)
Так же не забывайте отмечать свой вопрос решенным, если он таковым является :)


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, mr.DUDA, THandle.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Общие вопросы по .NET и C# | Следующая тема »


 




[ Время генерации скрипта: 0.0737 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.