powered by simpleCommunicator - 2.0.56     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / Можно ли предотвратить коллецию от изменений с помощью IReadOnlyCollection?
43 сообщений из 43, показаны все 2 страниц
Можно ли предотвратить коллецию от изменений с помощью IReadOnlyCollection?
    #38407143
user7320
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Т. е. не с помощью конкретной реализации IReadOnlyCollection (например, ReadOnlyCollection), а именно только с интерфейсом?

Вот пример кода (что-то из ASP.NET MVC).

Здесь я создаю какую-то модель и хочу сделать её коллецию Submodels неизменяемой (immutable). Поэтому я использую IReadOnlyCollection. При этом я хочу получить отложенное выполнение, поэтому возвращаю из линка интерфейсный тип. Но поскольку нельзя вернуть из линка тип IReadOnlyCollection, то возвращаю один из типов, от которого он наследуется. При этом подразумевается, что настоящий запрос к БД будет, когда кто-нибудь начнёт проходить каким-нибудь foreach'ем по коллекции Submodels. Так нормально я сделал? А как бы сделали вы? Ещё раз требования: неизменяемая коллеция и отложенное выполнение.

Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
public class Model
{
    public IReadOnlyCollection<Submodel> Submodels { get; private set; }

    public Model()
    {
        // Use Entity Framework.
        using (DatabaseContext ndb = new DatabaseContext())
        {
            this.Submodels = (from o in ndb.MyEntities
                              where ...
                              orderby ...
                              select new Submodel(...)).AsEnumerable();
        }
    }
}
...
Рейтинг: 0 / 0
Можно ли предотвратить коллецию от изменений с помощью IReadOnlyCollection?
    #38407148
user7320
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Я вот почему спрашиваю. Я тут начитался про всякое защитное программирование, и вот эту статью в частности. Испугался, и решил, что если сделаю что-то вроде того, что выше написал, то у человека по ссылке отпадёт желание использовать функции типа Censure (там поиском по странице легко найти) таким образом, как он использовал. У него, как я понимаю, при попытке изменить такую коллецию, либо эксепшен вылетит, либо ещё что-то, но она не изменится.

Но я вот не уверен, что это сработает без коркретной реализации. Достаточно ли только интерфейса?
...
Рейтинг: 0 / 0
Можно ли предотвратить коллецию от изменений с помощью IReadOnlyCollection?
    #38407153
Фотография МСУ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ты иногда сам читаешь свои глупости?

user7320Можно ли предотвратить коллецию от изменений

user7320Т. е. не с помощью конкретной реализации IReadOnlyCollection (например, ReadOnlyCollection), а именно только с интерфейсом?

"Предотвратить" - глагол, что сделать. Это реализация.
...
Рейтинг: 0 / 0
Можно ли предотвратить коллецию от изменений с помощью IReadOnlyCollection?
    #38407166
user7320
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
МСУТы иногда сам читаешь свои глупости?

user7320Можно ли предотвратить коллецию от изменений

user7320Т. е. не с помощью конкретной реализации IReadOnlyCollection (например, ReadOnlyCollection), а именно только с интерфейсом?

"Предотвратить" - глагол, что сделать. Это реализация.
Не понял.

Я хочу, чтобы не изменяли мою коллецию. Но и одновременно хочу, чтобы было отложенное выполнение. Если я напишу такое

Код: c#
1.
2.
3.
4.
5.
this.Submodels = new ReadOnlyCollection(
	from o in ndb.MyEntities
	where ...
	orderby ...
	select new Submodel(...)).ToList();



то не будет отложенного выполнения. А если оставлю, как есть (т. е. не использую конкретную реализацию интерфейса IReadOnlyCollection), то я не знаю, будет ли моя коллеция ридонли. Ведь нельзя же создать экзепляр интерфейса.
...
Рейтинг: 0 / 0
Можно ли предотвратить коллецию от изменений с помощью IReadOnlyCollection?
    #38407175
user7320
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Там ещё перед from и после ToLost() по скобке забыл.
...
Рейтинг: 0 / 0
Можно ли предотвратить коллецию от изменений с помощью IReadOnlyCollection?
    #38407223
Фотография МСУ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
user7320Я хочу, чтобы не изменяли мою коллецию.
ReadOnlyCollection, List<T>.AsReadOnly

user7320Но и одновременно хочу, чтобы было отложенное выполнение.
Lazy<T>, lazy load property
...
Рейтинг: 0 / 0
Можно ли предотвратить коллецию от изменений с помощью IReadOnlyCollection?
    #38407236
user7320
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Начал читать про Lazy в МСДН. Понял, что мне это не надо, достаточно ReadOnlyCollection. ))
...
Рейтинг: 0 / 0
Можно ли предотвратить коллецию от изменений с помощью IReadOnlyCollection?
    #38407244
Фотография Где-то в степи
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
user7320Начал читать про Lazy в МСДН. Понял, что мне это не надо, достаточно ReadOnlyCollection. ))
это как имхо lazy и ReadOnlyCollection соотносятся между собой как колбаса и композитор марк фрадкин
...
Рейтинг: 0 / 0
Можно ли предотвратить коллецию от изменений с помощью IReadOnlyCollection?
    #38407326
Фотография МСУ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
user7320, не забивай свою голову всякими глупостями. Вот тебе решение твоей задачи в целом . Не нужны тебе никакие readonly коллекции.

Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
public class Repository
{
    private IDatabaseContext Context { get; private set; }

    public Repository(IDatabaseContext context)
    {
        Context = context;
    }

    public IEnumerable<Submodel> GetSubmodels()
    {
        return Context.
    }
}



А модель ничего не должна знать о IDatabaseContext, а о DatabaseContext и подавно.
...
Рейтинг: 0 / 0
Можно ли предотвратить коллецию от изменений с помощью IReadOnlyCollection?
    #38407336
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
МСУuser7320, не забивай свою голову всякими глупостями. Вот тебе решение твоей задачи в целом . Не нужны тебе никакие readonly коллекции.

Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
public class Repository
{
    private IDatabaseContext Context { get; private set; }

    public Repository(IDatabaseContext context)
    {
        Context = context;
    }

    public IEnumerable<Submodel> GetSubmodels()
    {
        return Context.
    }
}



А модель ничего не должна знать о IDatabaseContext, а о DatabaseContext и подавно.

Даже и не знаю, давать тебе ссылку, или нет...
...
Рейтинг: 0 / 0
Можно ли предотвратить коллецию от изменений с помощью IReadOnlyCollection?
    #38407358
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
user7320Т. е. не с помощью конкретной реализации IReadOnlyCollection (например, ReadOnlyCollection), а именно только с интерфейсом?

Вот пример кода (что-то из ASP.NET MVC).

Здесь я создаю какую-то модель и хочу сделать её коллецию Submodels неизменяемой (immutable). Поэтому я использую IReadOnlyCollection. При этом я хочу получить отложенное выполнение , поэтому возвращаю из линка интерфейсный тип. Но поскольку нельзя вернуть из линка тип IReadOnlyCollection, то возвращаю один из типов, от которого он наследуется. При этом подразумевается, что настоящий запрос к БД будет, когда кто-нибудь начнёт проходить каким-нибудь foreach'ем по коллекции Submodels. Так нормально я сделал? А как бы сделали вы? Ещё раз требования: неизменяемая коллеция и отложенное выполнение.

Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
public class Model
{
    public IReadOnlyCollection<Submodel> Submodels { get; private set; }

    public Model()
    {
        // Use Entity Framework.
        using (DatabaseContext ndb = new DatabaseContext())
        {
            this.Submodels = (from o in ndb.MyEntities
                              where ...
                              orderby ...
                              select new Submodel(...)).AsEnumerable();
        }
    }
}

То есть ты хочешь, чтобы запрос к БД реально выполнялся, когда контекст уже disposed? Боюсь, что исключение поймаешь (хотя с EF я не работал, утверждать не буду).
...
Рейтинг: 0 / 0
Можно ли предотвратить коллецию от изменений с помощью IReadOnlyCollection?
    #38407364
Фотография МСУ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
skyANAДаже и не знаю, давать тебе ссылку, или нет...
Ты о чем?
...
Рейтинг: 0 / 0
Можно ли предотвратить коллецию от изменений с помощью IReadOnlyCollection?
    #38407393
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
МСУ, об этом: 14878644 .
...
Рейтинг: 0 / 0
Можно ли предотвратить коллецию от изменений с помощью IReadOnlyCollection?
    #38407400
Фотография МСУ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
skyANAМСУ, об этом: 14878644 .
У человека такая каша в голове, что даже не хочется влезать в это дело :)
...
Рейтинг: 0 / 0
Можно ли предотвратить коллецию от изменений с помощью IReadOnlyCollection?
    #38408321
user7320
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
МСУuser7320, не забивай свою голову всякими глупостями. Вот тебе решение твоей задачи в целом . Не нужны тебе никакие readonly коллекции.

Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
public class Repository
{
    private IDatabaseContext Context { get; private set; }

    public Repository(IDatabaseContext context)
    {
        Context = context;
    }

    public IEnumerable<Submodel> GetSubmodels()
    {
        return Context.
    }
}



А модель ничего не должна знать о IDatabaseContext, а о DatabaseContext и подавно.
У меня не будет репозитория. Пока не будет. У меня времени нет его по-нормальному делать. А потом посмотрим. Захотят репозиторий - я время дополнительное попрошу.

И главное, модели предметной области толком-то и нет. Приложение - тупо справочник. Сущности со связями. Всё. Ни расчётов, ни отчётов, ничего. Вся модель - БД в СУБД. Так что модель в ASP.NET MVC и заполнять-то нечем. Надо тупо создать справочник-сайт. Веб 1.0. Запросы к БД и всё. Поэтому модели у меня - это модели представлений на самом деле, если говорить в терминоГолии WPF... Дайте побыдлокодить, в конце-то концов! ))
...
Рейтинг: 0 / 0
Можно ли предотвратить коллецию от изменений с помощью IReadOnlyCollection?
    #38408328
user7320
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
skyANAuser7320Т. е. не с помощью конкретной реализации IReadOnlyCollection (например, ReadOnlyCollection), а именно только с интерфейсом?

Вот пример кода (что-то из ASP.NET MVC).

Здесь я создаю какую-то модель и хочу сделать её коллецию Submodels неизменяемой (immutable). Поэтому я использую IReadOnlyCollection. При этом я хочу получить отложенное выполнение , поэтому возвращаю из линка интерфейсный тип. Но поскольку нельзя вернуть из линка тип IReadOnlyCollection, то возвращаю один из типов, от которого он наследуется. При этом подразумевается, что настоящий запрос к БД будет, когда кто-нибудь начнёт проходить каким-нибудь foreach'ем по коллекции Submodels. Так нормально я сделал? А как бы сделали вы? Ещё раз требования: неизменяемая коллеция и отложенное выполнение.

Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
public class Model
{
    public IReadOnlyCollection<Submodel> Submodels { get; private set; }

    public Model()
    {
        // Use Entity Framework.
        using (DatabaseContext ndb = new DatabaseContext())
        {
            this.Submodels = (from o in ndb.MyEntities
                              where ...
                              orderby ...
                              select new Submodel(...)).AsEnumerable();
        }
    }
}

То есть ты хочешь, чтобы запрос к БД реально выполнялся, когда контекст уже disposed? Боюсь, что исключение поймаешь (хотя с EF я не работал, утверждать не буду).
Очень правильное замечание! Поэтому я уже отказался от этого в пользу создания экземпляра ReadOnlyCollection.
...
Рейтинг: 0 / 0
Можно ли предотвратить коллецию от изменений с помощью IReadOnlyCollection?
    #38408339
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
user7320И главное, модели предметной области толком-то и нет. Приложение - тупо справочник.Справочник чего? Сферической фигни в вакууме? А данные в этот сферический справочник откуда попадают? А сколько этих данных?
А зачем они вообще нужны эти данные, если они сферические?

Вот ты сейчас набыдлокодишь, а людям будет неудобно пользоваться.
...
Рейтинг: 0 / 0
Можно ли предотвратить коллецию от изменений с помощью IReadOnlyCollection?
    #38408343
Фотография МСУ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
user7320Дайте побыдлокодить, в конце-то концов! ))
Тогда вообще ничего не пиши, возьми EF и обращайся к БД прямо в контроллере.
...
Рейтинг: 0 / 0
Можно ли предотвратить коллецию от изменений с помощью IReadOnlyCollection?
    #38408385
user7320
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
МСУskyANAМСУ, об этом: 14878644 .
У человека такая каша в голове, что даже не хочется влезать в это дело :)
Мне уже значительно лучше! Я уже продвинулся и вот тут следующий вопрос у меня возник.

МСУuser7320Дайте побыдлокодить, в конце-то концов! ))
Тогда вообще ничего не пиши, возьми EF и обращайся к БД прямо в контроллере.
Это я уже давно умею делать - скучно. Теперь вот модели делаю. Репозиторий я делал в приложении для WPF - нудная работа, а толку я от неё так и не увидел. Вы там у себя крутые штуки делаете, с версиями и поддержкой и развитием годами, поэтому вам и кажется, что если в модель репозиторий поместить (ну в смысле, что без репозитория всё делать), то будет ад и погибель. А я так сразу не могу по всм правилам всё делать и все паттерны соблюсти - у меня уже каша в голове.
...
Рейтинг: 0 / 0
Можно ли предотвратить коллецию от изменений с помощью IReadOnlyCollection?
    #38408395
Фотография Где-то в степи
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
skyANA,
да люди поймут и простят ))
...
Рейтинг: 0 / 0
Можно ли предотвратить коллецию от изменений с помощью IReadOnlyCollection?
    #38408397
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
user7320Репозиторий я делал в приложении для WPF - нудная работа, а толку я от неё так и не увидел.Через это приложение заполняется справочник?
...
Рейтинг: 0 / 0
Можно ли предотвратить коллецию от изменений с помощью IReadOnlyCollection?
    #38408399
user7320
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
skyANAuser7320Репозиторий я делал в приложении для WPF - нудная работа, а толку я от неё так и не увидел.Через это приложение заполняется справочник?
Тогда я бы взял этот репозиторий и использовал его тут.
...
Рейтинг: 0 / 0
Можно ли предотвратить коллецию от изменений с помощью IReadOnlyCollection?
    #38408409
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
user7320skyANAпропущено...
Через это приложение заполняется справочник?
Тогда я бы взял этот репозиторий и использовал его тут.Заполнение справочника вообще не на .Net написано?
...
Рейтинг: 0 / 0
Можно ли предотвратить коллецию от изменений с помощью IReadOnlyCollection?
    #38408418
user7320
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
skyANAuser7320пропущено...

Тогда я бы взял этот репозиторий и использовал его тут.Заполнение справочника вообще не на .Net написано?
Мы на него Лайтсвич натравили - вроде, чего-то неплохое он выдал. Там человек его попробует до ума довести. Если не получится, буду писать свой редактор с репозиторием и тогда уже использовать его в нынешнем своём приложении.

А для тестов я руками в таблички данные повбивал в Management Studio.

Лучше помогите, пожалуйста, с этим вопросом . Я так быстрее к репозиторию приду.
...
Рейтинг: 0 / 0
Можно ли предотвратить коллецию от изменений с помощью IReadOnlyCollection?
    #38408441
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
user7320skyANAпропущено...
Заполнение справочника вообще не на .Net написано?
Мы на него Лайтсвич натравили - вроде, чего-то неплохое он выдал. Там человек его попробует до ума довести. Если не получится, буду писать свой редактор с репозиторием и тогда уже использовать его в нынешнем своём приложении.

А для тестов я руками в таблички данные повбивал в Management Studio.

Лучше помогите, пожалуйста, с этим вопросом . Я так быстрее к репозиторию приду.То есть вы собрались развивать и поддерживать две различных программы, написанные на .Net, не обладающие общим кодом, но работающие с одной БД.

Вы не ищете лёгких путей.
...
Рейтинг: 0 / 0
Можно ли предотвратить коллецию от изменений с помощью IReadOnlyCollection?
    #38408466
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
user7320Лучше помогите, пожалуйста, с этим вопросом . Я так быстрее к репозиторию приду. Помог .
...
Рейтинг: 0 / 0
Можно ли предотвратить коллецию от изменений с помощью IReadOnlyCollection?
    #38408483
Фотография МСУ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
user7320Мне уже значительно лучше!
Это радует.

user7320Это я уже давно умею делать - скучно.
Включи весёлую музыку, расслабься. И будет веселее. Проверено 100%.

user7320Теперь вот модели делаю.
Это не модели, это какое-то, извини, гавно на лопате. Прошу прощение за мой французский.
...
Рейтинг: 0 / 0
Можно ли предотвратить коллецию от изменений с помощью IReadOnlyCollection?
    #38409060
Фотография Где-то в степи
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
user7320,
авторЭто я уже давно умею делать - скучно.
вот сидел скучал, придумал такую задачку.
есть код
Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
 class Program
    {
        public static MyClass Class;
        static void Main()
        {
            try
            {
                Class = new MyClass();
            }
            catch { }
            GC.Collect();
            Thread.Sleep(500);
            Console.WriteLine(Class.I);
            Console.Read();

        }
    }

    class MyClass
    {
        public int I;
        public MyClass()
        {
            I = 5;
            throw new Exception("");
        }
    
    }


ну естественно вылазит NullReferenceException ((((
как нужно изменить тип - MyClass , что бы все работало, что бы заткнуть глотку старшему
есть как бы два способа ( а может и больше) один пацанский другой не очень..
...
Рейтинг: 0 / 0
Можно ли предотвратить коллецию от изменений с помощью IReadOnlyCollection?
    #38409062
Фотография Где-то в степи
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Где-то в степи,
ну естественно throw new Exception(""); не трогать в конструкторе и не ловить его
...
Рейтинг: 0 / 0
Можно ли предотвратить коллецию от изменений с помощью IReadOnlyCollection?
    #38409626
user7320
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Статичный I и вызов его во РайтЛайн тоже как статичный (т. е. MyClass.I).
...
Рейтинг: 0 / 0
Можно ли предотвратить коллецию от изменений с помощью IReadOnlyCollection?
    #38409634
user7320
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
И присвоение в конструкторе тоже как статичному. Короче, статичный I.
...
Рейтинг: 0 / 0
Можно ли предотвратить коллецию от изменений с помощью IReadOnlyCollection?
    #38409648
user7320
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
...
Рейтинг: 0 / 0
Можно ли предотвратить коллецию от изменений с помощью IReadOnlyCollection?
    #38409659
user7320
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А зачем нужно GC.Collect(); ? Оно ни на что не влияет. А статичные данные вообще мусорщиком не отслеживаются.
И спать потоку тоже зачем?
И почему спать надо после мусорщика?
...
Рейтинг: 0 / 0
Можно ли предотвратить коллецию от изменений с помощью IReadOnlyCollection?
    #38409668
user7320
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
user7320 Потому что гладиолус .
А вообще, получается, что все эти статики - это такая утечка памяти. Особенно для тех, кто любит в статики много чего пихать и с ними расчёты вести (типа, быстрее).
...
Рейтинг: 0 / 0
Можно ли предотвратить коллецию от изменений с помощью IReadOnlyCollection?
    #38409703
Фотография Где-то в степи
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
user7320,
вот тебе подсказка
Диалог на собеседовании
- Скажите, если в конструкторе возникнет исключение, объект будет создан?
- Да с ху..ли?
- Тогда, по другому поставим вопрос, если у объекта определен финализатор, и возникло исключение в конструкторе, финализатор этого объекта будет вызван уборщиком?
-Ну?
- То есть вы, считаете что объект не создастся в памяти?
-Ну
- А финализатор будет вызван при уборке?
- Коллега, вы чё мне мозг еб..е, Рихтер сказал что финализатор будет всегда вызван, значит будет.
...
Рейтинг: 0 / 0
Можно ли предотвратить коллецию от изменений с помощью IReadOnlyCollection?
    #38409840
user7320
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Где-то в степиuser7320,
вот тебе подсказка
Диалог на собеседовании
- Скажите, если в конструкторе возникнет исключение, объект будет создан?
- Да с ху..ли?
- Тогда, по другому поставим вопрос, если у объекта определен финализатор, и возникло исключение в конструкторе, финализатор этого объекта будет вызван уборщиком?
-Ну?
- То есть вы, считаете что объект не создастся в памяти?
-Ну
- А финализатор будет вызван при уборке?
- Коллега, вы чё мне мозг еб..е, Рихтер сказал что финализатор будет всегда вызван, значит будет.
- А если у класса нет других данных, кроме статических, объект будет создан? А его финализатор будет вызван? А что по этому поводу говорит Рихтер?
- Эээ...
...
Рейтинг: 0 / 0
Можно ли предотвратить коллецию от изменений с помощью IReadOnlyCollection?
    #38409881
user7320
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Где-то в степиuser7320,
вот тебе подсказка
Диалог на собеседовании
- Скажите, если в конструкторе возникнет исключение, объект будет создан?
- Да с ху..ли?
- Тогда, по другому поставим вопрос, если у объекта определен финализатор, и возникло исключение в конструкторе, финализатор этого объекта будет вызван уборщиком?
-Ну?
- То есть вы, считаете что объект не создастся в памяти?
-Ну
- А финализатор будет вызван при уборке?
- Коллега, вы чё мне мозг еб..е, Рихтер сказал что финализатор будет всегда вызван, значит будет.
Мой вариант - объект не будет создан, а финализатор не будет вызван.
...
Рейтинг: 0 / 0
Можно ли предотвратить коллецию от изменений с помощью IReadOnlyCollection?
    #38409886
user7320
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
user7320Мой вариант - объект не будет создан, а финализатор не будет вызван.
user7320- А если у класса нет других данных, кроме статических, объект будет создан? А его финализатор будет вызван? А что по этому поводу говорит Рихтер?
И в этом случае тоже.
...
Рейтинг: 0 / 0
Можно ли предотвратить коллецию от изменений с помощью IReadOnlyCollection?
    #38409888
user7320
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А кто такой Рихтер?
...
Рейтинг: 0 / 0
Можно ли предотвратить коллецию от изменений с помощью IReadOnlyCollection?
    #38410114
bazile
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
user7320Мой вариант - объект не будет создан, а финализатор не будет вызван.
Ошибаешься. Финализатор будет вызван т.к. память уже была выделена.

user7320А статичные данные вообще мусорщиком не отслеживаются.
Ты заблуждаешься. static поля являются одним из источников корней (roots) с которых GC начинает построение списка достижимых (используемых) объектов.

user7320А вообще, получается, что все эти статики - это такая утечка памяти. Особенно для тех, кто любит в статики много чего пихать и с ними расчёты вести (типа, быстрее).
Называть статические данные утечкой памяти некорректно. Прочитай что такое утечка памяти хотя бы в википедии сначала.

user7320А кто такой Рихтер?
Это автор книги CLR via C#. Программирование на платформе Microsoft.NET Framework 4.5 на языке C# которую тебе следует прочитать, судя по уровню знаний.
...
Рейтинг: 0 / 0
Можно ли предотвратить коллецию от изменений с помощью IReadOnlyCollection?
    #38410185
user7320
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
авторОшибаешься. Финализатор будет вызван т.к. память уже была выделена.
Да, я тоже об этом подумал, что куда-то же деваются де данные, которые таки успели до исключения присвоиться. Кто-то же их должен убрать.

авторТы заблуждаешься. static поля являются одним из источников корней (roots) с которых GC начинает построение списка достижимых (используемых) объектов.
Точно. Чего-то там на Stackoveflow встречал про root'ы всякие, но не придал этому значения.

авторНазывать статические данные утечкой памяти некорректно.
Я к тому, что если ими увлекаться, не знаю, как с ними работает мусорщик, то можно много памяти... ммм... потребить. Для некоторых это будет выглядеть как утечка памяти. Некоторым невдомёк, что статические данные фактически мусорщиком не убиваются всё время работы приложения. Там надо что-то с доменами мутить.

авторЭто автор книги CLR via C#. Программирование на платформе Microsoft.NET Framework 4.5 на языке C# которую тебе следует прочитать, судя по уровню знаний.
А, спасибо. Надо найти этого Рихтера на англ., а то эти все переводы как-то не очень, и их ругают. Я щас Скита дочитаю и тогда за Рихтера.
...
Рейтинг: 0 / 0
Можно ли предотвратить коллецию от изменений с помощью IReadOnlyCollection?
    #38410187
user7320
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Где-то в степи,

ну я же правильно ответил - статический I делаешь и работает. Я проверял - пятёрка выводится.
...
Рейтинг: 0 / 0
Можно ли предотвратить коллецию от изменений с помощью IReadOnlyCollection?
    #38410539
Фотография Где-то в степи
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
user7320,
Изыди неуч,
...
Рейтинг: 0 / 0
43 сообщений из 43, показаны все 2 страниц
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / Можно ли предотвратить коллецию от изменений с помощью IReadOnlyCollection?
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]