В С# как объявление отличается от определения, то есть:
- Объявление класса и определение класса
- Объявление переменной vs definition
- Объявление параметра метода vs definition
В С++ это было довольно очевидно, но в С# из того, что я могу сказать по стандарту ECMA, и MSDN - это то, что все является объявлением и где используется определение слова, оно используется как означающее то же, что и декларация.