Login
Хочу научится
NEW 15.08.09 11:38
in Antwort anly 15.08.09 11:19, Zuletzt geändert 15.08.09 11:40 (voxel3d)
По-существу тебе уже сказали.
По сравнению с С++ дополнительные трудозатраты заключаются в указании " : IDisposable", написание тела void Dispose() будем считать за написание деструктора в С++.
В ответ на:
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 - средство синхронизации и бэкапа файлов.
NEW 15.08.09 11:42
Мурр, концепт смарт-поинтеров заключается не в предоставлении метаинформации об инкапсулируемом объекте (хотя их можно и для этого расширить), а в предоставлении прозрачного доступа к нему.
in Antwort Murr 14.08.09 23:56
В ответ на:
То, что ниже smart pointer.
То, что ниже smart pointer.
В ответ на:
std::has_virtual_destructor<typeof(*ptr)>::value => true/false
std::has_virtual_destructor<typeof(*ptr)>::value => true/false
Мурр, концепт смарт-поинтеров заключается не в предоставлении метаинформации об инкапсулируемом объекте (хотя их можно и для этого расширить), а в предоставлении прозрачного доступа к нему.
Dropbox - средство синхронизации и бэкапа файлов.
NEW 15.08.09 11:45
in Antwort voxel3d 15.08.09 11:38
В ответ на:
По сравнению с С++ дополнительные трудозатраты заключаются в указании " : IDisposable", написание тела void Dispose() будем считать за написание деструктора в С++.
спасибо. видно доп.затраты всего одна строчка. приемлемо.По сравнению с С++ дополнительные трудозатраты заключаются в указании " : IDisposable", написание тела void Dispose() будем считать за написание деструктора в С++.
Проклят нарушающий межи ближнего своего (Втор.27:17)
NEW 15.08.09 11:49
in Antwort voxel3d 15.08.09 11:42
Кстати, как язык мне очень понравился Nemerle, если говорить про то, что C# нравится больше C++.
Dropbox - средство синхронизации и бэкапа файлов.
NEW 15.08.09 11:59
in Antwort anly 15.08.09 11:45
Мне самое большое неудобство в С#, в сравнении с С++, доставило отсутствие множественного наследования классов. С деструкторами-"недеструкторами из С++" неудобства нет.
Народ ещё жалуется на низкую производительность .Net и GC в частности на больших используемых объёмах памяти, но я не упирался в это ни разу, так и не понял, врут или нет.
Народ ещё жалуется на низкую производительность .Net и GC в частности на больших используемых объёмах памяти, но я не упирался в это ни разу, так и не понял, врут или нет.
Dropbox - средство синхронизации и бэкапа файлов.
NEW 15.08.09 13:28
in Antwort anly 15.08.09 00:48
Выше уже писали об уровне владения.
Но суть в том, что даже using не является обязательным - объект будет удален GC когда это будет возможно. От программиста вообще не требуется об этом заботится - создал, использовал и забыл.
В Шарпе объекты без new не создаются. Есть статические объекты, доступ к конструкторам и методам которых возможен без new, но и об них корректно заботится GC.
Но суть в том, что даже using не является обязательным - объект будет удален GC когда это будет возможно. От программиста вообще не требуется об этом заботится - создал, использовал и забыл.
В Шарпе объекты без new не создаются. Есть статические объекты, доступ к конструкторам и методам которых возможен без new, но и об них корректно заботится GC.
NEW 15.08.09 13:35
in Antwort scorpi_ 15.08.09 02:44
Хммм... понимаю, что на смарт-поинтере это работает.
Но как это должно работать на двух простых указателях на один и тот же объект - не представляю.
Но как это должно работать на двух простых указателях на один и тот же объект - не представляю.
NEW 15.08.09 13:40
in Antwort voxel3d 15.08.09 11:42
а в предоставлении прозрачного доступа к нему.
-----
Угу... читал когда-то давно. Пользоваться, правда, не приходилось.
-----
Угу... читал когда-то давно. Пользоваться, правда, не приходилось.
NEW 15.08.09 13:45
in Antwort voxel3d 15.08.09 11:59
но я не упирался в это ни разу, так и не понял, врут или нет.
------
Эээ... Я упирался... правда не в объемах, а в количестве/сложности создаваемых объектов.
Реально притормаживает... хотя, возможно, просто Я был уработанный и писал глупости...
------
Эээ... Я упирался... правда не в объемах, а в количестве/сложности создаваемых объектов.
Реально притормаживает... хотя, возможно, просто Я был уработанный и писал глупости...
NEW 15.08.09 13:48
in Antwort voxel3d 15.08.09 11:59
отсутствие множественного наследования классов
------
В Си-Билдере и так не было множественного наследования - так что Я и не заметил...
------
В Си-Билдере и так не было множественного наследования - так что Я и не заметил...
NEW 15.08.09 13:58
Это работает в том случае, если компайлер предоставляет поддержку. Типа так: http://msdn.microsoft.com/en-us/library/ms177194%28VS.80%29.aspx или так http://gcc.gnu.org/onlinedocs/gcc/Type-Traits.html
При чём тут два указателя - мне совершенно непонятно.
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
При чём тут два указателя - мне совершенно непонятно.
NEW 15.08.09 14:22
in Antwort scorpi_ 15.08.09 13:58
При чём тут два указателя - мне совершенно непонятно.
-----
При том, что "удобство" С++ деструктора сводится на нет при необходимости
отслеживать количество существующих указателей на объект.
Ссылка на Managet C++ с его CLR несколько некорректна - CLR практически уравнивает
Шарп с Плюсами в .NET...
Гнусню версию пока не смотрел.
-----
При том, что "удобство" С++ деструктора сводится на нет при необходимости
отслеживать количество существующих указателей на объект.
Ссылка на Managet C++ с его CLR несколько некорректна - CLR практически уравнивает
Шарп с Плюсами в .NET...
Гнусню версию пока не смотрел.
NEW 15.08.09 14:49
Одна якобы "кроссплатформенна" ( да, есть на свете люди для которых это важно) ,
ну а остальные - вечнодогоняющие, плюс возможные проблемы с лицензией.
in Antwort scorpi_ 14.08.09 23:41
В ответ на:
В чём это выражается?
В чём это выражается?
Одна якобы "кроссплатформенна" ( да, есть на свете люди для которых это важно) ,
ну а остальные - вечнодогоняющие, плюс возможные проблемы с лицензией.
NEW 15.08.09 15:00
Ниасилил...
in Antwort Murr 15.08.09 14:22
В ответ на:
При том, что "удобство" С++ деструктора сводится на нет при необходимости
отслеживать количество существующих указателей на объект.
При том, что "удобство" С++ деструктора сводится на нет при необходимости
отслеживать количество существующих указателей на объект.
Ниасилил...
NEW 15.08.09 15:11
shared_ptr/weak_ptr в помощь.
А если повнимательнее прочитать?
in Antwort Murr 15.08.09 14:22
В ответ на:
При том, что "удобство" С++ деструктора сводится на нет при необходимости отслеживать количество существующих указателей на объект.
При том, что "удобство" С++ деструктора сводится на нет при необходимости отслеживать количество существующих указателей на объект.
shared_ptr/weak_ptr в помощь.
В ответ на:
Ссылка на Managet C++ с его CLR несколько некорректна - CLR практически уравнивает Шарп с Плюсами в .NET...
Ссылка на Managet C++ с его CLR несколько некорректна - CLR практически уравнивает Шарп с Плюсами в .NET...
А если повнимательнее прочитать?
NEW 15.08.09 15:14
Это как бы не проблема данной имплементации. А то ведь можно сказать, что gcc - отстой, потому что mingw - вечнодогоняющий.
in Antwort Chipolino 15.08.09 14:49
В ответ на:
Одна якобы "кроссплатформенна", ну а остальные - вечнодогоняющие
Одна якобы "кроссплатформенна", ну а остальные - вечнодогоняющие
Это как бы не проблема данной имплементации. А то ведь можно сказать, что gcc - отстой, потому что mingw - вечнодогоняющий.

NEW 15.08.09 15:30
Проблема .NET .
Тан совсем другая ситуация :-)
gcc 4.4 уже есть
in Antwort scorpi_ 15.08.09 15:14
В ответ на:
Это как бы не проблема данной имплементации.
Это как бы не проблема данной имплементации.
Проблема .NET .
В ответ на:
А то ведь можно сказать, что gcc - отстой, потому что mingw - вечнодогоняющий.
А то ведь можно сказать, что gcc - отстой, потому что mingw - вечнодогоняющий.
Тан совсем другая ситуация :-)
gcc 4.4 уже есть
NEW 15.08.09 15:32
in Antwort scorpi_ 15.08.09 15:11
NEW 15.08.09 15:36
Зачем создавать циклические ссылки и полагаеться на деструктор ?
in Antwort Murr 15.08.09 14:22
В ответ на:
При том, что "удобство" С++ деструктора сводится на нет при необходимости
отслеживать количество существующих указателей на объект.
При том, что "удобство" С++ деструктора сводится на нет при необходимости
отслеживать количество существующих указателей на объект.
Зачем создавать циклические ссылки и полагаеться на деструктор ?