Features C# has that Delphi doesn't =================================== 1) foreach 2) operators using, lock, checked and unchecked 3) block scoped variables 4) case statements with strings 5) assembly internal classes 6) namespaces can span code units 7) implicit array dimensioning: int[] a = new int{1,2,3}; 8) ternary operator ( ? : ) 9) can use classes from namespaces without importing the whole namespace 10) circular references are possible 11) try..catch..finally 12) assignment operators (+=, ++, -=, etc) 13) multi-file assemblies 14) You don't need to distribute Borland.Delphi.dll 15) Compiler warnings can be emitted if you omit XML documentation Features Delphi has that C# doesn't =================================== 1) sub-range types 2) enums and sets are first-class types 3) class type support 4) virtual constructors 5) virtual class methods 6) nested procedures 7) non-default index properties 8) can defines constant arrays and records 9) resourcestring s 10) default parameters 11) variants 12) arrays with non-integral subscripts 13) sets with more than 64 elements 14) message handlers 15) unions (variant records) 16) untyped parameters 17) const parameters 18) class helpers 19) smart linker 20) named constructors 21) array properties 22) unmanaged exports 23) super fast single pass compiler, compiling any project faster than C#, using less memory at the same time.
Disclaimer The opinions expressed herein are my own personal opinions and do not represent my employer's view in any way.