|
С# Средство разработки на платформе .Net |
27.01.2013, 12:21
|
#1
|
Нуждающийся
Регистрация: 25.11.2012
Сообщений: 83
Написано 2 полезных сообщений (для 2 пользователей)
|
Ссылка на объект
совсем недавно заметил, что можно в любом месте программы написать так:
new type(arg1,arg2,arg3,..,argn);
это что такое? Можно ли это как-нибудь использовать?
|
(Offline)
|
|
27.01.2013, 13:09
|
#2
|
Знающий
Регистрация: 08.01.2013
Адрес: Самара
Сообщений: 284
Написано 104 полезных сообщений (для 180 пользователей)
|
Ответ: Ссылка на объект
можно в любом месте программы написать так:
|
можно? Приведите плиз пример работоспособной программы.
|
(Offline)
|
|
27.01.2013, 13:29
|
#3
|
Знающий
Регистрация: 08.01.2013
Адрес: Самара
Сообщений: 284
Написано 104 полезных сообщений (для 180 пользователей)
|
Ответ: Ссылка на объект
|
(Offline)
|
|
28.01.2013, 16:34
|
#4
|
Нуждающийся
Регистрация: 25.11.2012
Сообщений: 83
Написано 2 полезных сообщений (для 2 пользователей)
|
Ответ: Ссылка на объект
пример работоспособной программы дать не могу, я просто нечаянно удалил часть создания типа, и все компилируется!
Да и ошибочка вышла - такое возможно только в каком-либо методе вот, допустим я могу так написать:
new Random();
вроде ошибок не "высвечивает"
|
(Offline)
|
|
28.01.2013, 21:47
|
#5
|
быдло
Регистрация: 05.08.2007
Сообщений: 1,435
Написано 614 полезных сообщений (для 1,489 пользователей)
|
Ответ: Ссылка на объект
а чего он должен высвчечивать ошибку? ты просто создаёшь новый обькт но никчему его не присваиваешь.
|
(Offline)
|
|
29.01.2013, 00:49
|
#6
|
Нуждающийся
Регистрация: 25.11.2012
Сообщений: 83
Написано 2 полезных сообщений (для 2 пользователей)
|
Ответ: Ссылка на объект
не знаю, мне просто казалось, раз так можно, значит, оно нужно
|
(Offline)
|
|
06.02.2013, 01:08
|
#7
|
ПроЭктировщик
Регистрация: 20.06.2009
Адрес: Україна
Сообщений: 152
Написано 10 полезных сообщений (для 24 пользователей)
|
Ответ: Ссылка на объект
можно и нужно.
Зачем привязывать объект к какому то уникальному имени если он выполняет всего одно действие:
Припустим Login - ето окошко, что должно показаться при нажатии соответственного пункта меню. Тогда:
private void LoginToolStripMenuItem_Click(object sender, EventArgs e)
{
Login MenuLogin = new Login();
MenuLogin.ShowDialog();
}
можно заменить на:
private void LoginToolStripMenuItem_Click(object sender, EventArgs e)
{
new Login().ShowDialog();
}
Вот как я этим пользуюсь...))
__________________
Blitz3D, XNA, WebGL, OpenGL, Unity3D
PC: ASUS A55VM Core i3 (2.4Ghz), 6 Gb RAM, Nvidia GF 630M GT 2Gb
|
(Offline)
|
|
06.02.2013, 04:22
|
#8
|
быдло
Регистрация: 05.08.2007
Сообщений: 1,435
Написано 614 полезных сообщений (для 1,489 пользователей)
|
Ответ: Ссылка на объект
о да, а потом удивляются чего память течёт
|
(Offline)
|
|
Сообщение было полезно следующим пользователям:
|
|
06.02.2013, 07:28
|
#9
|
Unity/C# кодер
Регистрация: 03.10.2005
Адрес: Россия, Рязань
Сообщений: 7,568
Написано 3,006 полезных сообщений (для 5,323 пользователей)
|
Ответ: Ссылка на объект
Для таких целей можно использовать связку IDisposable и using. Если Login объявлен с реализацией интерфейса Idisposable, то такая конструкция не приведет к ненужным вызовам сборщика мусора:
using(var login = new Login()) { login.ShowDialog(); }
Я так понимаю это форма, она как раз реализует этот интерфейс.
|
(Offline)
|
|
Сообщение было полезно следующим пользователям:
|
|
Ваши права в разделе
|
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения
HTML код Выкл.
|
|
|
Часовой пояс GMT +4, время: 03:48.
|