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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 08.05.2018, 20:12   #1
Nezhniy
Пользователь
 
Регистрация: 05.11.2013
Сообщений: 22
По умолчанию C# и VB.NET

Добрый день! Начал активно работать с C# , до этого работал на VB.NET . Всё вроде бы идентично и хорошо, но вот встретилось реально неприятное различие.

Допустим есть Form1 главная и создаю Form2 "Настройки программы".

Далее , чтобы произвести какие-либо элементарные изменения на Form1 (к примеру снять галочку , либо изменить текст в Textbox) в этих "Настройках программы" , в VB.NET это изменение делалось элементарно и логично: Form1.CheckBox1.Checked = false или Form1.TextBox1.Text = "Новый текст". Всё отлично и удобно.

C# же меня в этом аспекте сильно удивил. Он не даёт доступа к этим элементам из других форм.

Из этого у меня вопрос - оба языка вполне себе похожи, на одной платформе, но почему тут такое различие?

Это же действительно неудобно, когда в C# приходится делать такие простые вещи через огромные костыли с обновлениями форм, глобальные параметры в Default.Settings. Может есть какой-то способ попроще, чтобы можно было делать как раньше?
Nezhniy вне форума Ответить с цитированием
Старый 08.05.2018, 20:33   #2
Alex11223
Старожил
 
Аватар для Alex11223
 
Регистрация: 12.01.2011
Сообщений: 19,500
По умолчанию

В дизайнере формы где-то можно сделать элементы public, но лучше сделать функцию или свойство у формы, а не обращаться откуда попало напрямую.
Ушел с форума, https://www.programmersforum.rocks, alex.pantec@gmail.com, https://github.com/AlexP11223
ЛС отключены Аларом.
Alex11223 вне форума Ответить с цитированием
Старый 23.12.2018, 02:44   #3
Nintra GrayWorker
Пользователь
 
Регистрация: 19.10.2018
Сообщений: 72
По умолчанию

Цитата:
Сообщение от Nezhniy Посмотреть сообщение
Из этого у меня вопрос - оба языка вполне себе похожи, на одной платформе, но почему тут такое различие?
Это вопрос к MicroSoft-y.
(Я думал когда-то написать статью о различиях, но забил).

Вот только то что по-быстрому вспомнил:
Так-же, в VB есть в настройках Студии "Запускать только одну копию приложения"; в C# через Мютекс делал(правда, там чуток кода, и не забыть сказать GC чтоб не удалял ссылку на неиспользуемый объект) - печально, что не через настройки студии(((.
В C# НЕТ InputBox(((.
В VB есть замечательная функция Choose - в C# нету(((. //кто не в курсе, типа тернарника для свича. Можно, как пример, определение дня недели одной строчкой написать - первым параметром в функцию передать, какой из последующих параметров вернуть.
В VB то что описано в модуле доступно для всех форм - в C# нужно постараться.
В VB неявное преобразование(хотя иногда и в убыток то что по-умолчанию) - в C# нужно указывать что и куда преобразуешь.
Самое главное в switch:
Код:
case a:
case b:
   "код"
если а, C# исполняет "код", VB выходит со свича.

Привыкайте, различия есть.

Последний раз редактировалось Nintra GrayWorker; 23.12.2018 в 03:02. Причина: дополнил
Nintra GrayWorker вне форума Ответить с цитированием
Ответ


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

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Удаленный SQL-сервер Ado.Net + .Net remoting + Asp .Net gammaray Базы данных (ADO.NET, LinqToSql, ORM Entity Framework, NHibernate) 2 22.11.2010 17:36