Модераторы: Partizan, gambit
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> конструктор класса с классом в качестве параметра 
:(
    Опции темы
Syrex
Дата 5.12.2011, 09:56 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 262
Регистрация: 9.2.2006
Где: Москва

Репутация: нет
Всего: 1



Подскажите, как правильно написать конструктор класса, у которого в качестве параметра стоит экземпляр этого же класса?
Код

CMyClass
{
    private string _Host = null;
    private CookieCollection _Cookies = null;
   
    public CMyClass()
    {
    }
   
    public CMyClass(CMyClass ob)
    {
        _Host = ob.Host;
        _Cookies = ob.Cookies
    }
   
    public string Host
    {
        get { return _Host; }
        set { _Host = value; }
    }
    
    public CookieCollection Cookies
    {
        get { return _Cookies; }
        set { if (value != null && value.Count > 0) _Cookies = value; }
    }
}


Далее в коде
Код

CCodeClass
{
    CMyClass MyVar=new CMyClass;
    MyVar.Host="hostname";
    MyVar.Cookies=new CookieCollection();
    
    Func1(MyVar)
    
    private void Func1(CMyClass inClass)
    {
        CMyClass MyTmpVar = new CMyClass(inClass);
        MyTmpVar.Cookies.Add(new Cookie());// после данной строчки параметры MyVar.Cookies.Count тоже увеличивается на 1у
    }
}


Как сделать, чтобы переменные inClass и MyTmpVar  не зависили друг от друга?
PM MAIL ICQ   Вверх
Voyager
Дата 5.12.2011, 11:33 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 532
Регистрация: 8.2.2005

Репутация: 3
Всего: 18



Либо делай структурой, либо реализуй Clone.
PM   Вверх
Syrex
Дата 5.12.2011, 12:17 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 262
Регистрация: 9.2.2006
Где: Москва

Репутация: нет
Всего: 1



можете показать кодом, как делать Clone ?
PM MAIL ICQ   Вверх
KelTron
Дата 5.12.2011, 15:08 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 745
Регистрация: 8.10.2006
Где: Красноярск

Репутация: 11
Всего: 38



В строке 13:
Код

_Cookies = ob.Cookies

После этого оба объекта будут ссылаться на одну и ту же коллекцию, а тебе нужно скопировать элементы из одной коллекции в другую.
Код

_Cookies = new CookieCollection();
...здесь копирование из ob.Cookies в _Cookies




--------------------
Тысячами незримых нитей обвивает тебя Закон. Разрубишь одну - преступник. Десять - смертник. Все - Бог.
Эвенгар Салладорский, основатель Школы Тьмы.
PM MAIL   Вверх
Syrex
Дата 5.12.2011, 15:28 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 262
Регистрация: 9.2.2006
Где: Москва

Репутация: нет
Всего: 1



Спасибо
PM MAIL ICQ   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Прежде чем создать тему, посмотрите сюда:
Partizan
PashaPash

Используйте теги [code=csharp][/code] для подсветки кода. Используйтe чекбокс "транслит" если у Вас нет русских шрифтов.
Что делать если Вам помогли, но отблагодарить помощника плюсом в репутацию Вы не можете(не хватает сообщений)? Пишите сюда, или отправляйте репорт. Поставим :)
Так же не забывайте отмечать свой вопрос решенным, если он таковым является :)


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, mr.DUDA, Partizan, PashaPash.

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | .NET для новичков | Следующая тема »


 




[ Время генерации скрипта: 0.0624 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.