русский
Germany.ruForen → Архив Досок→ Programmierung

Хочу научится

2524  1 2 3 4 5 6 7 alle
voxel3d коренной житель15.08.09 11:38
voxel3d
NEW 15.08.09 11:38 
in Antwort anly 15.08.09 11:19, Zuletzt geändert 15.08.09 11:40 (voxel3d)
По-существу тебе уже сказали.
В ответ на:
using System;
class C : IDisposable
{
public void UseLimitedResource()
{
Console.WriteLine("Using limited resource...");
}
void IDisposable.Dispose()
{
Console.WriteLine("Disposing limited resource.");
}
}
class Program
{
static void Main()
{
using( C c = new C() )
{
c.UseLimitedResource();
}
Console.WriteLine("Now outside using statement.");
Console.ReadLine();
}
}


По сравнению с С++ дополнительные трудозатраты заключаются в указании " : IDisposable", написание тела void Dispose() будем считать за написание деструктора в С++.
Dropbox - средство синхронизации и бэкапа файлов.
voxel3d коренной житель15.08.09 11:42
voxel3d
NEW 15.08.09 11:42 
in Antwort Murr 14.08.09 23:56
В ответ на:
То, что ниже smart pointer.

В ответ на:
std::has_virtual_destructor<typeof(*ptr)>::value => true/false

Мурр, концепт смарт-поинтеров заключается не в предоставлении метаинформации об инкапсулируемом объекте (хотя их можно и для этого расширить), а в предоставлении прозрачного доступа к нему.
Dropbox - средство синхронизации и бэкапа файлов.
anly завсегдатай15.08.09 11:45
anly
NEW 15.08.09 11:45 
in Antwort voxel3d 15.08.09 11:38
В ответ на:
По сравнению с С++ дополнительные трудозатраты заключаются в указании " : IDisposable", написание тела void Dispose() будем считать за написание деструктора в С++.
спасибо. видно доп.затраты всего одна строчка. приемлемо.
Проклят нарушающий межи ближнего своего (Втор.27:17)
voxel3d коренной житель15.08.09 11:49
voxel3d
NEW 15.08.09 11:49 
in Antwort voxel3d 15.08.09 11:42
Кстати, как язык мне очень понравился Nemerle, если говорить про то, что C# нравится больше C++.
Dropbox - средство синхронизации и бэкапа файлов.
voxel3d коренной житель15.08.09 11:59
voxel3d
NEW 15.08.09 11:59 
in Antwort anly 15.08.09 11:45
Мне самое большое неудобство в С#, в сравнении с С++, доставило отсутствие множественного наследования классов. С деструкторами-"недеструкторами из С++" неудобства нет.
Народ ещё жалуется на низкую производительность .Net и GC в частности на больших используемых объёмах памяти, но я не упирался в это ни разу, так и не понял, врут или нет.
Dropbox - средство синхронизации и бэкапа файлов.
Murr коренной житель15.08.09 13:28
Murr
NEW 15.08.09 13:28 
in Antwort anly 15.08.09 00:48
Выше уже писали об уровне владения.
Но суть в том, что даже using не является обязательным - объект будет удален GC когда это будет возможно. От программиста вообще не требуется об этом заботится - создал, использовал и забыл.
В Шарпе объекты без new не создаются. Есть статические объекты, доступ к конструкторам и методам которых возможен без new, но и об них корректно заботится GC.
Murr коренной житель15.08.09 13:35
Murr
NEW 15.08.09 13:35 
in Antwort scorpi_ 15.08.09 02:44
Хммм... понимаю, что на смарт-поинтере это работает.
Но как это должно работать на двух простых указателях на один и тот же объект - не представляю.
Murr коренной житель15.08.09 13:40
Murr
NEW 15.08.09 13:40 
in Antwort voxel3d 15.08.09 11:42
а в предоставлении прозрачного доступа к нему.
-----
Угу... читал когда-то давно. Пользоваться, правда, не приходилось.
Murr коренной житель15.08.09 13:45
Murr
NEW 15.08.09 13:45 
in Antwort voxel3d 15.08.09 11:59
но я не упирался в это ни разу, так и не понял, врут или нет.
------
Эээ... Я упирался... правда не в объемах, а в количестве/сложности создаваемых объектов.
Реально притормаживает... хотя, возможно, просто Я был уработанный и писал глупости...
Murr коренной житель15.08.09 13:48
Murr
NEW 15.08.09 13:48 
in Antwort voxel3d 15.08.09 11:59
отсутствие множественного наследования классов
------
В Си-Билдере и так не было множественного наследования - так что Я и не заметил...
  scorpi_ скептик15.08.09 13:58
NEW 15.08.09 13:58 
in Antwort Murr 15.08.09 13:35
В ответ на:
Хммм... понимаю, что на смарт-поинтере это работает.
Но как это должно работать на двух простых указателях на один и тот же объект - не представляю.

Это работает в том случае, если компайлер предоставляет поддержку. Типа так: http://msdn.microsoft.com/en-us/library/ms177194%28VS.80%29.aspx или так http://gcc.gnu.org/onlinedocs/gcc/Type-Traits.html
При чём тут два указателя - мне совершенно непонятно.
Murr коренной житель15.08.09 14:22
Murr
NEW 15.08.09 14:22 
in Antwort scorpi_ 15.08.09 13:58
При чём тут два указателя - мне совершенно непонятно.
-----
При том, что "удобство" С++ деструктора сводится на нет при необходимости
отслеживать количество существующих указателей на объект.
Ссылка на Managet C++ с его CLR несколько некорректна - CLR практически уравнивает
Шарп с Плюсами в .NET...
Гнусню версию пока не смотрел.
  Chipolino свой человек15.08.09 14:49
NEW 15.08.09 14:49 
in Antwort scorpi_ 14.08.09 23:41
В ответ на:
В чём это выражается?

Одна якобы "кроссплатформенна" ( да, есть на свете люди для которых это важно) ,
ну а остальные - вечнодогоняющие, плюс возможные проблемы с лицензией.
  Chipolino свой человек15.08.09 15:00
NEW 15.08.09 15:00 
in Antwort Murr 15.08.09 14:22
В ответ на:
При том, что "удобство" С++ деструктора сводится на нет при необходимости
отслеживать количество существующих указателей на объект.

Ниасилил...
  scorpi_ скептик15.08.09 15:11
NEW 15.08.09 15:11 
in Antwort Murr 15.08.09 14:22
В ответ на:
При том, что "удобство" С++ деструктора сводится на нет при необходимости отслеживать количество существующих указателей на объект.

shared_ptr/weak_ptr в помощь.
В ответ на:
Ссылка на Managet C++ с его CLR несколько некорректна - CLR практически уравнивает Шарп с Плюсами в .NET...

А если повнимательнее прочитать?
Murr коренной житель15.08.09 15:13
Murr
NEW 15.08.09 15:13 
in Antwort Chipolino 15.08.09 15:00
Ниасилил...
-----
Не проблема.
  scorpi_ скептик15.08.09 15:14
NEW 15.08.09 15:14 
in Antwort Chipolino 15.08.09 14:49
В ответ на:
Одна якобы "кроссплатформенна", ну а остальные - вечнодогоняющие

Это как бы не проблема данной имплементации. А то ведь можно сказать, что gcc - отстой, потому что mingw - вечнодогоняющий.
  Chipolino свой человек15.08.09 15:30
NEW 15.08.09 15:30 
in Antwort scorpi_ 15.08.09 15:14
В ответ на:
Это как бы не проблема данной имплементации.

Проблема .NET .
В ответ на:
А то ведь можно сказать, что gcc - отстой, потому что mingw - вечнодогоняющий.

Тан совсем другая ситуация :-)
gcc 4.4 уже есть
  Chipolino свой человек15.08.09 15:32
NEW 15.08.09 15:32 
in Antwort scorpi_ 15.08.09 15:11
В ответ на:
shared_ptr/weak_ptr в помощь.

Мне нужен переводчик с языка Мура .
  Chipolino свой человек15.08.09 15:36
NEW 15.08.09 15:36 
in Antwort Murr 15.08.09 14:22
В ответ на:
При том, что "удобство" С++ деструктора сводится на нет при необходимости
отслеживать количество существующих указателей на объект.

Зачем создавать циклические ссылки и полагаеться на деструктор ?
1 2 3 4 5 6 7 alle