Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / Помогите начинающему / 6 сообщений из 6, страница 1 из 1
09.02.2015, 11:22
    #38874568
ughunter
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите начинающему
Делаю робкие первые шаги в мире си шарпа... так вот код на вб:
Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
Public Class DocumentForm
        Default Public Property IsDirty(ByVal obj As Object) As Boolean
            Get
                Return _IsDirty
            End Get
            Set(ByVal value As Boolean)
                If Not obj.IsReadOnly Then
                    _IsDirty = value
                    If value Then
                        If TypeOf obj Is XtraForm Then SetActive(obj)
                    Else
                        If TypeOf obj Is XtraForm Then SetInActive(obj)
                    End If
                    _obj.Add(obj)
                    RaiseEvent DirtyChange(Caption)
                End If
            End Set
        End Property
End Class



код на шарпе
Код: 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.
29.
30.
31.
32.
33.
34.
35.
public class DocumentForm
    {
        private bool _IsDirty = false;
        public bool this[object obj]
        {
            get
            {
                return _IsDirty;
            }
            set
            {
                if (!obj.IsReadOnly)
                {
                    _IsDirty = value;
                    if (value)
                    {
                        if (obj is XtraForm)
                        {
                            SetActive(obj);
                        }
                    }
                    else
                    {
                        if (obj is XtraForm)
                        {
                            SetInActive(obj);
                        }
                    }
                    _obj.Add(obj);
                    if (DirtyChangeEvent != null)
                        DirtyChangeEvent(Caption);
                }
            }
        }
}



компилятор ругается нехорошими словами и обещает кару небесную:
Ошибка 1 "object" не содержит определение для "IsReadOnly". Не удалось найти метод расширения "IsReadOnly", принимающий первый аргумент типа "object" (пропущена директива using или ссылка на сборку?)
...
Рейтинг: 0 / 0
09.02.2015, 11:42
    #38874590
D129
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите начинающему
ughunter,

if (!obj.IsReadOnly) - в этом месте обьект еще просто обьект, надо его привести к XtraForm
где есть определение IsReadOnly.

Код: c#
1.
2.
3.
4.
XtraForm xtObj = obj as XtraForm ;


if(!xtObj.IsReadOnly)
...
Рейтинг: 0 / 0
09.02.2015, 12:06
    #38874629
Arm79
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите начинающему
D129ughunter,

if (!obj.IsReadOnly) - в этом месте обьект еще просто обьект, надо его привести к XtraForm
где есть определение IsReadOnly.

Код: c#
1.
2.
3.
4.
XtraForm xtObj = obj as XtraForm ;


if(!xtObj.IsReadOnly)


я не силен в бейсике, могу что-то недопонять.

Передача параметров в проперти в C# не практикуется. Индексер в C# тоже непонятно откуда взялся. У класса Object нет метода IsReadOnly, поэтому его нужно приводить к нужному типу
...
Рейтинг: 0 / 0
09.02.2015, 12:15
    #38874647
Arm79
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите начинающему
Может как то так?

Код: 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.
29.
30.
31.
32.
33.
34.
35.
    public class TestCl
    {
        private IList<XtraForm> _objList = new List<XtraForm>(); 
        private bool _isDirty;

        public bool IsDirty
        {
            get { return _isDirty; }
            private set
            {
                _isDirty = value;
                if (DirtyChangeEvent != null) // че за события?
                    DirtyChangeEvent(Caption); // че за заголовок?
            }
        }

        public void SetDirty(XtraForm obj, bool isDirty)
        {
            if (!obj.IsReadOnly)
            {
                if (isDirty)
                {
                    SetActive(obj);
                }
                else
                {
                    SetInActive(obj);
                }

                _objList.Add(obj);

                IsDirty = isDirty;
            }
        }
    }
...
Рейтинг: 0 / 0
09.02.2015, 12:55
    #38874700
Antonariy
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите начинающему
ughunterДелаю робкие первые шаги в мире си шарпа... так вот код на вб:
Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
Public Class DocumentForm
        Default Public Property IsDirty(ByVal obj As Object) As Boolean
            Get
                Return _IsDirty
            End Get
            Set(ByVal value As Boolean)
                If Not obj.IsReadOnly Then
                    _IsDirty = value
                    If value Then
                        If TypeOf obj Is XtraForm Then SetActive(obj)
                    Else
                        If TypeOf obj Is XtraForm Then SetInActive(obj)
                    End If
                    _obj.Add(obj)
                    RaiseEvent DirtyChange(Caption)
                End If
            End Set
        End Property
End Class



код на шарпе
Код: 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.
29.
30.
31.
32.
33.
34.
35.
public class DocumentForm
    {
        private bool _IsDirty = false;
        public bool this[object obj]
        {
            get
            {
                return _IsDirty;
            }
            set
            {
                if (!obj.IsReadOnly)
                {
                    _IsDirty = value;
                    if (value)
                    {
                        if (obj is XtraForm)
                        {
                            SetActive(obj);
                        }
                    }
                    else
                    {
                        if (obj is XtraForm)
                        {
                            SetInActive(obj);
                        }
                    }
                    _obj.Add(obj);
                    if (DirtyChangeEvent != null)
                        DirtyChangeEvent(Caption);
                }
            }
        }
}



компилятор ругается нехорошими словами и обещает кару небесную:
Ошибка 1 "object" не содержит определение для "IsReadOnly". Не удалось найти метод расширения "IsReadOnly", принимающий первый аргумент типа "object" (пропущена директива using или ссылка на сборку?)converter.telerik.com
...
Рейтинг: 0 / 0
09.02.2015, 20:23
    #38875172
Cat2
Модератор форума
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите начинающему
Antonariyconverter.telerik.com
А это-то здесь каким боком? Не пугайте человека
...
Рейтинг: 0 / 0
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / Помогите начинающему / 6 сообщений из 6, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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