Форум программистов, компьютерный форум, киберфорум
C# .NET
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск  
 
 
Рейтинг 4.57/7: Рейтинг темы: голосов - 7, средняя оценка - 4.57
-9 / 0 / 0
Регистрация: 03.01.2023
Сообщений: 10

Почему в Шарпе функцию не член класса в неймспейсе я объявить не могу?

03.01.2023, 12:59. Показов 1737. Ответов 33
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Тема создана разделение темы: Вычисление квадрата числа

Вопрос на самом деле не такой праздный, как может показаться. Не Hello world. Понятно, что pow(a,b) решит, но в таком примитивном случае хочется чего-то более адекватного и быстрого. Вы представляете какая это умная и сложная функция pow? Ведь ей можно задать любую, даже дробную степень, и она посчитает. А зачем мне лишние тормоза, когда заведомо можно сделать короче? Только не надо говорить, что, мол, компьютеры сейчас быстрые и т.д. Вот от такого подхода программы и тормозят несмотря на многократно возросшую мощь компьютеров. В С++ я могу написать что мне нужно вот так:
C++
1
inline float sqr(float x) { return x*x; }
А тут же какой-то трэш! Просто функцию не член класса в неймспейсе я объявить не могу. За пределами неймспейса могу, но тогда её не видно. И тут про инлайны (точнее, их отсутствие в С#) уже просто забываешь...
0
Лучшие ответы (1)
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
03.01.2023, 12:59
Ответы с готовыми решениями:

Не могу создать указатель на перегруженную функцию-член класса
Есть функция монстр из vulkan api. Она является членом класса. Просто написать её название не получается, потому что она перегружена. Каким...

Могу я установить glfw callback на функцию член-класса?
могу я сделать так: void CCore::Start() { // ... glfwSetWindowSizeCallback( _pWindow, this->_WindowSizeCallback); // ... } ...

Как объявить ссылку на структуру член класса, вне класса ?
Как объявить ссылку на структуру член класса, вне класса ? Вернее наверно, ссылку с типом данных структуры. Без всяких extern и...

33
-9 / 0 / 0
Регистрация: 03.01.2023
Сообщений: 10
06.01.2023, 13:42  [ТС]
Студворк — интернет-сервис помощи студентам
Элд Хасп, премного благодарен!
0
Эксперт JavaЭксперт по электроникеЭксперт .NET
 Аватар для wizard41
3463 / 2784 / 575
Регистрация: 04.09.2018
Сообщений: 8,757
Записей в блоге: 3
06.01.2023, 14:06
avk38k, кажется весьма странным, что мидлу С++ приходится разжевывать такие очевидные вещи. А просьбой посоветовать "правильную книжку по шарпу" вообще насмешил: т.е. с самостоятельным поиском информации явные проблемы? Как же до мидла дожил?
Потому, сомнения очень даже оправданы - ты или действительно тролль, или знатный брехун.
3
Модератор
Эксперт .NET
 Аватар для Элд Хасп
16166 / 11286 / 2892
Регистрация: 21.04.2018
Сообщений: 33,175
Записей в блоге: 2
06.01.2023, 14:23
wizard41, по меньше негатива.
Человек же пишет, что это было 20 лет назад.
Тогда ООП ещё было сырым.
И те же Плюсы считались вполне правильным и полным ЯООП.

У меня самого промежуток в программировании был лет 25-30.
Правда ради хобби, некоторые процессы делопроизводства автоматизировал на VBA.
Наверное, поэтому получилось достаточно быстро понять парадигму Шарпа и получить навык работы на нём.
0
Эксперт JavaЭксперт по электроникеЭксперт .NET
 Аватар для wizard41
3463 / 2784 / 575
Регистрация: 04.09.2018
Сообщений: 8,757
Записей в блоге: 3
06.01.2023, 14:33
Цитата Сообщение от Элд Хасп Посмотреть сообщение
что это было 20 лет назад
Может это так. А может и не так. Ну прям очень слабо верится, а точнее - не верится совсем, что "мидл", т.е. человек с достаточно большим опытом, придет в ветку другого ЯП и начнет его хаять. Не верю я в это.
Как инлайнить функции он хорошо помнит. А для чего вообще существует С++ и в чем его отличие от других ЯП он, как-будто бы не понимал/не понимает. Да еще и вступает в споры по теме, в которой явно не силен. Ну чушь, ей богу.
3
Модератор
Эксперт .NET
 Аватар для Элд Хасп
16166 / 11286 / 2892
Регистрация: 21.04.2018
Сообщений: 33,175
Записей в блоге: 2
06.01.2023, 14:38
Цитата Сообщение от wizard41 Посмотреть сообщение
что "мидл", т.е. человек с достаточно большим опытом,
Мидл после 20-летего промежутка....
Это совсем не нынешний "свежий" мидл.

Добавлено через 2 минуты
Цитата Сообщение от wizard41 Посмотреть сообщение
придет в ветку другого ЯП и начнет его хаять
Он не сколько "хаит", а пытался экстраполировать свои знания Плюсов 20-летней давности на Шарп и не понимал почему это не получается.
Скорее всего из-за того что Шарп воспринимал как развитие ветки Си.
1
Эксперт JavaЭксперт по электроникеЭксперт .NET
 Аватар для wizard41
3463 / 2784 / 575
Регистрация: 04.09.2018
Сообщений: 8,757
Записей в блоге: 3
06.01.2023, 14:43
Элд Хасп, в любом случае, мидл-не мидл, а он спозиционировал себя как программист в принципе. А программист - это человек с определенным складом ума, пытливым, любознательным. Он скорее бы более детально изучил вопрос, прежде чем как школьник выплевывать свои недо-рассуждения типа "а у нас вот так, а у вас не так, потому у вас говно".
20 лет прошло? Ну, могу только посочувствовать - ибо на лицо деменция..
2
Эксперт JavaЭксперт по электроникеЭксперт .NET
 Аватар для wizard41
3463 / 2784 / 575
Регистрация: 04.09.2018
Сообщений: 8,757
Записей в блоге: 3
06.01.2023, 14:46
Цитата Сообщение от Элд Хасп Посмотреть сообщение
и не понимал почему это не получается
Чтобы понять, нужен ум и цель. Но он без всякого понимания сразу отметил: "недоязык.." или что-то в этом роде. В самом первом своем посте. Что и вызвало кучу вопросов и сомнений. Т.е. такое отношение к себе было спровоцировано им самим, что настоящий бы программист вряд ли допустил.
1
Модератор
Эксперт .NET
 Аватар для Элд Хасп
16166 / 11286 / 2892
Регистрация: 21.04.2018
Сообщений: 33,175
Записей в блоге: 2
06.01.2023, 14:55
wizard41, очень по разному.
Мне как-то было интересно смотреть "что там нового?".
Поэтому хоть и не работал программистом всё равно пробовал то тот, то иной ЯП.
Для понимания ООП хорош помог VBA.

Но я представляю, как с моими первоначальными знаниями Фортрана, Алгола, Си (без плюсов) и т.п., я бы пытался сразу освоить Шарп.
Думаю мне многое было бы не понятно и возмущало.
Особенно в начале изучения, на простых, учебных задачах, на которых ООП реализации практически всегда будут проигрывать ПП реализациям.
0
Эксперт JavaЭксперт по электроникеЭксперт .NET
 Аватар для wizard41
3463 / 2784 / 575
Регистрация: 04.09.2018
Сообщений: 8,757
Записей в блоге: 3
06.01.2023, 14:58
Элд Хасп, у меня тоже шарп после Си (без плюсов) зашел очень даже. Я еще подумал - "А что так можно было?" ))
1
 Аватар для aenye
304 / 186 / 45
Регистрация: 05.07.2018
Сообщений: 580
06.01.2023, 15:52
Цитата Сообщение от Элд Хасп Посмотреть сообщение
Мидл после 20-летего промежутка....
Это совсем не нынешний "свежий" мидл.

Не по теме:


Что-то мне подсказывает, что 20 лет назад еще не существовало градаций junior, middle, senior и т.д., а квалификацию измеряли условными попугаями и, может даже, не по конкретному языку. Тем более, на просторах СНГ.
Если так - то непонятно с какого потолка товарисч взял свой уровень скилов.

Олды тут? Как оно там было?

1
Эксперт JavaЭксперт по электроникеЭксперт .NET
 Аватар для wizard41
3463 / 2784 / 575
Регистрация: 04.09.2018
Сообщений: 8,757
Записей в блоге: 3
06.01.2023, 15:54
aenye, тоже думал об этом сказать, но промолчал. ибо и так ясно...
0
-9 / 0 / 0
Регистрация: 03.01.2023
Сообщений: 10
06.01.2023, 16:12  [ТС]
aenye, Вы правы. Просто я адаптировал на текущее время. А тогда у нас были следующие градации: лаборант-программист, инженер программист 3-й, 2-й, 1-й категории. Я достиг 2-й, потом сменил место жительства и работу, соответственно.

Добавлено через 12 минут
wizard41,
Цитата Сообщение от wizard41 Посмотреть сообщение
после Си (без плюсов)
- Вот вот, я так и подумал. Потому что после плюсов возникает другая реакция: "Да как же так можно-то?!"
0
HF
 Аватар для HF
1342 / 926 / 202
Регистрация: 09.09.2011
Сообщений: 2,751
Записей в блоге: 2
06.01.2023, 17:03
Цитата Сообщение от avk38k Посмотреть сообщение
Вот вот, я так и подумал. Потому что после плюсов возникает другая реакция: "Да как же так можно-то?!"
Просто не надо шуметь из-за этого и свои мысли выставлять как открытие истины для всех. Немножечко отдохнули, обдумали ситуацию и всё станет понятным и обыденным.

Не по теме:

Странные люди. Приходит человек в чужую компанию. Никто его не знает, он сам опыта не имеет в теме. Начинает пытаться доказать какую-то правду-матку-истину. Но на что надеятся? На бездумное восстание других разумов?
Вот если бы с такой темой выступил Someone007, я бы наверное задумался.
Благо что сюда ещё из JavaScript не заходят. Непаханое поле для удивлений.



Добавлено через 42 минуты
Вот это я не понял.
Цитата Сообщение от avk38k Посмотреть сообщение
Почему в Шарпе функцию не член класса в неймспейсе я объявить не могу?
Всё равно, чтобы это использовать, я должен сделать это методом класса.
inline float sqr(float x) { return x*x; }
1. Это не член класса в С++?
2. Это не нужно писать?
3. Эмм.. а в С++ эта инлайн функция становится глобальной?
4. А как вы собирались объявить "функцию - не член класса в (каком?) неймспейсе? Пример написали. Это или в методе объявляется или в классе.
5. Почему нельзя использовать статический метод, не в этом классе. И использовать его ... глобально.

Надеюсь мы доберёмся до темы - компилятор умеет оптимизировать код так что даже трэш может убрать.
1
Эксперт .NET
 Аватар для Usaga
14784 / 9558 / 1366
Регистрация: 21.01.2016
Сообщений: 36,039
07.01.2023, 10:27
Цитата Сообщение от avk38k Посмотреть сообщение
А зачем мне лишние тормоза, когда заведомо можно сделать короче?
а) А вы где-то наталкивались на тормоза этой функции?
б) Если да, то кто вам мешает завести свой вариант, ускоренный?
в) Причём тут пространства имён вообще и классы в частности? Они вам чем мешают?
2
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
07.01.2023, 10:27

Сам вопрос: почему функция-член одного класса не вызывается из функции-члена другого класса?
//Щас всё объясню. Так, имеем два класса, в одном я определил функцию-член. Все конструкторы и прочее //опущены для уменьшения кода ...

Объявить функцию в которую можно передать функцию из класса
Здравствуйте, как можно передать в функцию функцию из класса? Точнее каким образом нужно объявить ф-цию что бы в неё можно передать ф-цию...

Как запихнуть функцию-член класса в глобальную функцию в качестве параметра ?
class A { public : float f(float); float f2(float); }; class B { public : float f(float); float f2(float); };

Как объявить friend функцию класса
как это оформить, чтобы работало // ----------> one.h #include "two.h" #ifndef ONE_H_INCLUDED #define ONE_H_INCLUDED #include...

В каком разделе класса объявить функцию?
В каком месте кода? Я скажем решил в процедуру Button1Click, что бы функция пренадлежала ей и вызывалась нажатием кнопки. В public ведь...


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

Или воспользуйтесь поиском по форуму:
34
Ответ Создать тему
Новые блоги и статьи
Программный домашний кинотеатр
russiannick 27.09.2026
Сподобился на программный домашний кинотеатр. В качестве ЯВУ по традиции выбрал js. В помощники взял Яндекс-Алису. Было создано три зала на разные интересы. исторические и ретро сериал Хичкок. . .
Беседа с ИИ о программистах, недопускающих к созданию и правке кода генеративные ИИ и причины этого
zorxor 21.09.2026
Раньше я радовался или получал некоторые эмоции, пусть небольшие, но всё же, от самого процесса написания кода, рекомпиляции и запуска, видя постепенное развитие программы и прочее. А теперь лень. . .
Мобильное приложение ColorStep
pavlinmavlin 17.09.2026
Реализовал приложение Красный, Зеленый, Синий в Unity3d + c#. Название изменил на ColorStep. Приложение прошло модерацию и теперь доступно для скачивания. Делал его сам, шаг за шагом — и вот,. . .
Запрет дублирования строк в табличной части
Maks 13.09.2026
Реализация из решения ниже выполнена на нетиповом справочнике "Нормы ТО" с табличной часть "Виды ТО", разработанного в КА2, со следующими реквизитами: - ВидТО (СправочникСсылка. ВидыТО); - ВидГСМ. . .
Скрипты Tampermonkey для CyberForum, ChatGPT, Claude и пр.
Jin X 06.09.2026
Скрипты Tampermonkey для CyberForum, ChatGPT, Claude и пр. Работая с форумом и нейросетями в браузере часто хочется что-то подкорректировать или добавить какого-то функционала. Ниже прикреплён. . .
Программа опроса у.з. расходомера SLS-720F
Argus19 02.09.2026
Программа опроса у. з. расходомера SLS-720F Программа опрашивает один раз в минуту три ультразвуковых расходомера SLS-720F через интерфейс RS-485 по протоколу Modbus RTU. Опрашиваются регистры. . .
Hyper-V: Компьютер должен поддерживать доверенный платформенный модуль 2.0.
Maks 31.08.2026
При установке Windows 11 на виртуальную машину Hyper-V 2-го поколения вылезла такая ошибка: Решение: в параметрах виртуальной машины, в разделе "Безопасность" (Security) активировать флаг. . .
Архитектура биовида Стива в Майнкрафте: Зачем бонобо кубический каннибализм
anaschu 30.08.2026
Кубический Вагинокапитализм в Minecraft: Математический инвариант ОДУ и рок Стивов-бонобо Главная задача разработанной «Модели Всего» — наглядно продемонстрировать наличие системной «судьбы». . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru