Форум программистов, компьютерный форум, киберфорум
C# для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.97/29: Рейтинг темы: голосов - 29, средняя оценка - 4.97
13 / 11 / 2
Регистрация: 07.05.2015
Сообщений: 418

Не удалось найти тип или имя пространства имён

24.01.2020, 02:21. Показов 6202. Ответов 10

Студворк — интернет-сервис помощи студентам
Всем привет, я пытаюсь сделать так, чтобы у некоторых переменных был объявлен тип, который в будущем можно поменять.
В c++ я бы сделал это объявив примерно следующее:
C#
1
#define typeN = double;
Но C# не поддерживает такой синтаксис.

Серьезность Код Описание Проект Файл Строка Состояние подавления
Ошибка CS0246 Не удалось найти тип или имя пространства имен "typeN" (возможно, отсутствует директива using или ссылка на сборку). Neuronet C:\Users\Aycon\source\repos\Neuronet\Neu ronet\Neuron.cs 14 Активные

C#
1
2
3
4
5
6
7
8
9
10
11
namespace Neuronet
{
    class Neuron
    {
        public Type typeN = Type.GetType("System.Double");
        public Neuron()
        {
            typeN f = 0;
        }
    }
}
0
Лучшие ответы (1)
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
24.01.2020, 02:21
Ответы с готовыми решениями:

Не удалось найти тип или имя пространства имен
Вот код: using System; using Events; namespace Properties { public class Property<T> : ICloneable,...

Не удалось найти тип или имя пространства имен "BuhOt"
Помогите исправить ошибки Серьезность Код Описание Проект Файл Строка Состояние подавления Ошибка CS0246 Не удалось найти тип или имя...

Не удалось найти тип или имя пространства имен "graph"
Полностью код. Выдает ошибку "не удалось найти тип или имя пространства имен "graph" ". Никак не воткну в чем дело. Я...

10
Эксперт .NET
 Аватар для kolorotur
17823 / 12973 / 3382
Регистрация: 17.09.2011
Сообщений: 21,261
24.01.2020, 02:34
C#
1
using TypeN = System.Double;
1
13 / 11 / 2
Регистрация: 07.05.2015
Сообщений: 418
24.01.2020, 03:16  [ТС]
Спасибо.
А как объявить чтобы из других файлов проекта тоже можно было обратиться?
Если этого не сделать, то в случае замены типа, придётся менять тип во всех файлах проекта..
0
Эксперт .NET
 Аватар для kolorotur
17823 / 12973 / 3382
Регистрация: 17.09.2011
Сообщений: 21,261
24.01.2020, 13:11
Aycon, никак - это работает только в пределах файла.
Лучше напишите свою структуру-обертку и в ней уже меняйте тип.
0
Модератор
Эксперт .NET
 Аватар для Элд Хасп
16123 / 11247 / 2888
Регистрация: 21.04.2018
Сообщений: 33,073
Записей в блоге: 2
24.01.2020, 15:27
Цитата Сообщение от Aycon Посмотреть сообщение
А как объявить чтобы из других файлов проекта тоже можно было обратиться?
Если этого не сделать, то в случае замены типа, придётся менять тип во всех файлах проекта..
В других файлах при обращении к этой переменной используйте тип "var".
1
13 / 11 / 2
Регистрация: 07.05.2015
Сообщений: 418
24.01.2020, 16:58  [ТС]
Прошу прощения за навязчивость, опишу ситуацию целиком:
Я хочу написать прототип нейронной сети и хочу чтобы некоторые переменные, например веса нейрона, были такого типа, как указано в одном месте программы. Чтобы я это место поменял и все переменные стали float, а потом ещё раз поменял и все переменные уже фигурируют памятью double. Это возможно?
Во всех файлах программы.
0
Модератор
Эксперт .NET
 Аватар для Элд Хасп
16123 / 11247 / 2888
Регистрация: 21.04.2018
Сообщений: 33,073
Записей в блоге: 2
24.01.2020, 17:32
Цитата Сообщение от Aycon Посмотреть сообщение
Это возможно?
Менять double <-> float бессмысленно.
По крайней мере, в рамках современных x86 процессоров.
Сделайте всюду double и не парьтесь.
0
Эксперт .NET
 Аватар для kolorotur
17823 / 12973 / 3382
Регистрация: 17.09.2011
Сообщений: 21,261
24.01.2020, 17:32
Цитата Сообщение от Aycon Посмотреть сообщение
Чтобы я это место поменял и все переменные стали float, а потом ещё раз поменял и все переменные уже фигурируют памятью double. Это возможно?
Возможно, сделав тип-обертку.
Только зачем эти метания? Выберите нужный вам тип и используйте его.
0
13 / 11 / 2
Регистрация: 07.05.2015
Сообщений: 418
24.01.2020, 18:44  [ТС]
Не соглашусь, современные нейронные сети имеют порядка миллиардов нейронов (в худшем случае пострадает память), к тому же от величины переменной зависит можно ли сделать ту или иную оптимизацию, что актуально если вы пересчитываете производные функций в матричном виде для обучения сети для процессоров GPU определённой архитектуры. В любом случае я просто хочу знать можно ли, и если да, то как это сделать.

Добавлено через 2 минуты
Быть может за проект придётся объявить пару десятков таких переменных. Что же, предлагаете потом метаться по всему проекту, и отлавливать эксепшионы если я захочу увеличить размерность?
При всём уважении.

Добавлено через 3 минуты
Цитата Сообщение от kolorotur Посмотреть сообщение
Возможно, сделав тип-обертку.
Не подскажете ссылку на MSDN что такое обёртка?
Я не совсем понимаю. Типо привести к типу обжект, а потом.. К какому?
0
Эксперт .NET
 Аватар для kolorotur
17823 / 12973 / 3382
Регистрация: 17.09.2011
Сообщений: 21,261
24.01.2020, 19:01
Лучший ответ Сообщение было отмечено Aycon как решение

Решение

Aycon, тип-обертка — это ваш собственный тип, который инкапсулирует необходимые вам операции.
В своем проекты вы уже оперируете не float/double, а этим типом.
А что уже использовать внутри — это деталь реализации, которую вы можете подменить в одном месте — в вашем типе.

C#
1
2
3
4
readonly struct Neuron
{
   double value; // Это можете менять на что угодно — внешним типам не нужно знать, что используется внутри Neuron — для них это абстракция.
}
1
13 / 11 / 2
Регистрация: 07.05.2015
Сообщений: 418
24.01.2020, 19:12  [ТС]
Спасибо большое, если не затруднит, это как-то повышает нагрузку на процессор или память? Или без разницы?

Добавлено через 8 минут
Боже, как удобно, спасибо большое ещё раз
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
24.01.2020, 19:12
Помогаю со студенческими работами здесь

Не удалось найти тип или имя пространства имен "Keys" (возможно, отсутствует директива using или ссылка на сборку)
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; using...

Не удалось найти тип или имя пространства имен "StringBuilder" (возможно, отсутствует директива using или ссылка на сбор
static void Main(string args) { int A, B, n = 0; StringBuilder sb = new StringBuilder(); ...

Ошибка в VKnet - Не удалось найти тип или имя пространства имен "ApiAuthParams"
Всем Доброго времени суток. У меня такая проблема: Хочу седлать авторизацию в вк на консоле. using System; using VkNet; using...

Как исправить ошибку компиляции "Не удалось найти тип или имя пространства имен"?
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace...

Не удалось найти имя типа или пространства имен
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace...


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

Или воспользуйтесь поиском по форуму:
11
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): сборка C/C++ проекта из консоли
8Observer8 30.01.2026
Содержание блога Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
Установка Emscripten SDK (emsdk) и CMake на Windows для сборки C и C++ приложений в WebAssembly (Wasm)
8Observer8 30.01.2026
Чтобы скачать Emscripten SDK (emsdk) необходимо сначало скачать и уставить Git: Install for Windows. Следуйте стандартной процедуре установки Git через установщик. Система контроля версиями Git. . .
Подключение Box2D v3 к SDL3 для Android: физика и отрисовка коллайдеров
8Observer8 29.01.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами. Версия v3 была полностью переписана на Си, в. . .
Инструменты COM: Сохранение данный из VARIANT в файл и загрузка из файла в VARIANT
bedvit 28.01.2026
Сохранение базовых типов COM и массивов (одномерных или двухмерных) любой вложенности (деревья) в файл, с возможностью выбора алгоритмов сжатия и шифрования. Часть библиотеки BedvitCOM Использованы. . .
Загрузка PNG с альфа-каналом на SDL3 для Android: с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 28.01.2026
Содержание блога SDL3 имеет собственные средства для загрузки и отображения PNG-файлов с альфа-каналом и базовой работы с ними. В этой инструкции используется функция SDL_LoadPNG(), которая. . .
Загрузка PNG с альфа-каналом на SDL3 для Android: с помощью SDL3_image
8Observer8 27.01.2026
Содержание блога SDL3_image - это библиотека для загрузки и работы с изображениями. Эта пошаговая инструкция покажет, как загрузить и вывести на экран смартфона картинку с альфа-каналом, то есть с. . .
Влияние грибов на сукцессию
anaschu 26.01.2026
Бифуркационные изменения массы гриба происходят тогда, когда мы уменьшаем массу компоста в 10 раз, а скорость прироста биомассы уменьшаем в три раза. Скорость прироста биомассы может уменьшаться за. . .
Воспроизведение звукового файла с помощью SDL3_mixer при касании экрана Android
8Observer8 26.01.2026
Содержание блога SDL3_mixer - это библиотека я для воспроизведения аудио. В отличие от инструкции по добавлению текста код по проигрыванию звука уже содержится в шаблоне примера. Нужно только. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru