a lot of trivial tasks require writing more code than in C or C++;
I'm... confused by this statement... what do you mean by a 'trivial task' in this context?
things like signal processing / codec style tasks, which involve a lot of intensive array-walking and fixed-point arithmetic and similar.
say, for example, writing code for a video codec in C#.
stuff like this is slightly more painful in C# than in C or C++, due to minor differences related to handling of types and things like arrays and pointers.
some of it can be wrapped over, but then adds the cost of writing the wrapper code.
though, I would still quickly choose C# over Java for these tasks...
basically, all the little things like:
"int[] blk=new int[64];" vs "int blk[64];";
"for(i=0; i<n; i++)ct[b+i]=Foo(cs[b+i]);" vs "while(cs<cse)*ct++=Foo(*cs++);";
"ct=(byte)((((int)cs)*xsc+2048)>>12);" vs "*ct++=((*cs++)*xsc+2048)>>12;"
...
granted, there are things which C# does pretty good at as well.
for example, GUI and using databases and similar are much nicer in C#.
so, in cases where one is making a tool which uses GUI or similar, and for which OS portability isn't a huge concern, C# does well...