In C# how does a declaration differ from a definition, i.e.:
where the word definition is used, it is used to mean the same thing as declaration
Correct.
The concept of a 'declaration' as a soft/forward definition is needed in C and C++ because of their compilation model. C++ (conceptually) uses single pass compilation, C# is multi-pass. Consider:
class Bar; // declaration: needed in C++, illegal and unnecessary in C#
class Foo // start of definition, counts as a declaration of Foo
{
Foo f; // use of declared but still incompletely defined class Foo
Bar b; // use of declared but still undefined class Bar
}
class Bar // definition and re-declaration
{
}
C++ can't handle the Bar b
field without a declaration first. C# can.