powered by simpleCommunicator - 2.0.56     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / if this.blablabla в интерфейсе.
7 сообщений из 7, страница 1 из 1
if this.blablabla в интерфейсе.
    #38497118
Hawkmoon
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Слово this гуглится плохо. Видимо, отсюда проблемы, которые не понимаю, как решить.

Есть интерфейс. И есть класс, его реализующий. Понадобилось изменить логику на более сложную, всвязи с тем что нужно поддерживать работоспособность и старого и нового кода.

Кто ответит, что это и что с этим делать?


Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
	public class PostgreSQLDBWorker : DBInterface
	{

            int DBInterface.DeleteRule(string a_object_type, string a_object_name)
		{
                      if (this.GetDbVersion() <= 10)
                     {
                            return this.OldHandler(a_object_type, a_object_name);
                     }
                     else
                     {
                      //new code
                          ...
                     }
       }



Ругань на:

Error 118 'Console.PostgreSQLDBWorker' does not contain a definition for 'OldHandler' and no extension method 'OldHandler' accepting a first argument of type 'Console.PostgreSQLDBWorker' could be found


Я ссылаюсь вроде как на this - экземпляр объекта, а оно че-то не хочет его воспринимать. Что я упускаю?
Пока заменил код на юзание не this, а глобальной ссылки на этот объект, но это гогнокод. К тому же, в будущем экземпляр будет явно не один.
...
Рейтинг: 0 / 0
if this.blablabla в интерфейсе.
    #38497142
Сон Веры Павловны
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
вангую, что OldHandler [если он на самом деле существует] является статиком.
...
Рейтинг: 0 / 0
if this.blablabla в интерфейсе.
    #38497286
Hawkmoon
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Сон Веры Павловны,

неа. Вот он:

Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
        int DBInterface.OldHandler(string object_type, string object_name)
        {
            object[] ParamValues = new object[2];
            ParamValues[0] = object_type;
            ParamValues[1] = object_name;

            return ExecuteNonQueryCommand("DeleteRuleFromAllPatterns", ParamValues);
        }
...
Рейтинг: 0 / 0
if this.blablabla в интерфейсе.
    #38497321
Фотография Алексей К
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: c#
1.
return ((DBInterface)this).OldHandler(a_object_type, a_object_name);
...
Рейтинг: 0 / 0
if this.blablabla в интерфейсе.
    #38497481
Hawkmoon
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Алексей К,

Помогло. Теперь интересно, почему. this и так ведь реализует DBInterface
...
Рейтинг: 0 / 0
if this.blablabla в интерфейсе.
    #38497518
Фотография Алексей К
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
...
Рейтинг: 0 / 0
if this.blablabla в интерфейсе.
    #38497579
Hawkmoon
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Логично.
...
Рейтинг: 0 / 0
7 сообщений из 7, страница 1 из 1
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / if this.blablabla в интерфейсе.
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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