Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > .NET Frameworks (точка нет фреймворки) > Общие вопросы .NET
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 31.03.2010, 22:47   #1
adwaer
Пользователь
 
Регистрация: 06.06.2008
Сообщений: 47
По умолчанию ссылка на класс

Как сделать ссылку на класс? У меня имеется несколько классов, друг на друга ссылающиеся. Почему то выходит ошибка, в таким случае:

класс1:
класс2 к2 = new класс2()

класс2:
класс1 к1 = new класс1()

В классе 2 возникает ошибка.. Что можно сделать?
adwaer вне форума Ответить с цитированием
Старый 01.04.2010, 02:06   #2
Casper-SC
Форумчанин
 
Регистрация: 04.07.2007
Сообщений: 549
По умолчанию

При таком использовании проблем не возникает:

Код:
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;

namespace WindowsFormsApplication12
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }
    }

    class Dva
    {
        Odin odin = new Odin();
    }

    class Odin
    {
        Dva dva = new Dva();
    }
}
И какая интересно возникает ошибка? И пример приводить надо кодом, где ошибка возникает, а не просто буквами. И текст ошибки. Не удивлюсь, если ошибка возникает из за какого нибудь поля в классе.
Casper-SC вне форума Ответить с цитированием
Старый 01.04.2010, 15:30   #3
adwaer
Пользователь
 
Регистрация: 06.06.2008
Сообщений: 47
По умолчанию

У меня в таком роде:

Код:
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.Data.OleDb;

namespace mobile_system
{
    public partial class Services : Form
    {
        public Services()
        {
            InitializeComponent();
        }

        User n = new User();
.....
Код:
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.Data.OleDb;

namespace mobile_system
{    
    public partial class User : Form
    {
        Services ser = new Services();
....
Выходит:
Необработанное исключение типа "System.StackOverflowException"
adwaer вне форума Ответить с цитированием
Старый 01.04.2010, 23:50   #4
m0nax
Форумчанин
 
Аватар для m0nax
 
Регистрация: 25.09.2009
Сообщений: 525
По умолчанию

естественно будет ошибка, оба класса создают объекты друг друга в конструкторах, зацикливаются и собсно StackOverflow

выход - перегрузить конструкторы, что бы был вариант в котором не создается объект того же класса в котором нужно создать объект текущего...
m0nax вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Ссылка в VB 6 serega112000 Помощь студентам 2 01.02.2010 21:44
Ссылка joojle Microsoft Office Excel 3 26.05.2009 14:25
Ссылка на C++ A-l-e-x Общие вопросы C/C++ 8 11.05.2009 21:28