Вопрос о Стиле C# действия/делегата

Для Таблицы:

SELECT 
  TABLE_NAME,COLUMN_NAME,CONSTRAINT_NAME, REFERENCED_TABLE_NAME,REFERENCED_COLUMN_NAME
FROM
  INFORMATION_SCHEMA.KEY_COLUMN_USAGE
WHERE
  REFERENCED_TABLE_SCHEMA = '<database>' AND
  REFERENCED_TABLE_NAME = '<table>';

Для Столбца:

SELECT 
  TABLE_NAME,COLUMN_NAME,CONSTRAINT_NAME, REFERENCED_TABLE_NAME,REFERENCED_COLUMN_NAME
FROM
  INFORMATION_SCHEMA.KEY_COLUMN_USAGE
WHERE
  REFERENCED_TABLE_SCHEMA = '<database>' AND
  REFERENCED_TABLE_NAME = '<table>' AND
  REFERENCED_COLUMN_NAME = '<column>';

В основном, мы изменили REFERENCED_TABLE_NAME с REFERENCED_COLUMN_NAME в где пункт.

9
задан Aardvark 18 October 2010 в 16:23
поделиться

5 ответов

Neither 1 or 2. A third option is the winner

public event EventHandler<NumberChangedEventArgs> NumberChanged;

You're breaking a number of style guidelines for developing in C#, such as using a type for event args that doesn't extend EventArgs.

Yes, you can do it this way, as the compiler doesn't care. However, people reading your code will do a WTF.

16
ответ дан 4 December 2019 в 07:23
поделиться

Не создавайте новый тип, если вам это не нужно. Я думаю, что это лучше:

public event Action<object, double> OnNumberChanged;

Причина, по которой существуют семейства делегатов Action и Func , заключается в том, чтобы служить именно этой цели и уменьшать потребность в создании новых типов делегатов разработчиками.

11
ответ дан 4 December 2019 в 07:23
поделиться

Typically I stick to using an EventArgs derived class as the argument. It makes the code much more consistent.

I have a class:

public class ApplyClickedEventArgs : EventArgs  
{  
   ...
}

and a handler:

void cpy_ApplyClicked(object sender, ApplyClickedEventArgs e)  
{  
   ...  
}  

The declaration is:

public event EventHandler<ApplyClickedEventArgs> ApplyClicked;
2
ответ дан 4 December 2019 в 07:23
поделиться

I think option 1 is better if I were to choose, but IIRC, the official guidelines for events state that your second parameter has to be a class with the name XxxEventArgs, and should have EventArgs up in its inheritance chain.

0
ответ дан 4 December 2019 в 07:23
поделиться

As with all questions about coding style. Pick the one you prefer, or that your team prefers, and keep it consistent throughout the project. As long as everyone who needs to can read it efficiently you will be fine.

1
ответ дан 4 December 2019 в 07:23
поделиться
Другие вопросы по тегам:

Похожие вопросы: