From: Arne Vajhøj on
On 13-05-2010 20:37, Thomas Pornin wrote:
> According to Lew<noone(a)lewscanon.com>:
>> That is instructive. I thought "unmanaged" code in .Net (with which
>> I'm barely passingly familiar) meant high-level code still (e.g., C#),
>> but without the memory-management features (GC).
>
> Well, C# has that, too. C# syntax tends to agglomerate features quite
> fast. You can have "unmanaged" C# code, with C-like things like explicit
> pointer arithmetic. But the term "unmanaged" is also used to describe
> native code. Basically, in the .NET world, "managed" means "code where
> types, array accesses, memory management,... is under strict control of
> the VM" and "unmanaged" means "whatever is not managed".

Unmanaged code is native code. You can not produce that with
Microsofts C# compiler. C# code does not become unmanaged just
by using unsafe features.

C# managed code can somewhat work with unmanaged data though
interop classes.

Arne
From: Mike Schilling on
Thomas Pornin wrote:
> According to Lew <noone(a)lewscanon.com>:
>> That is instructive. I thought "unmanaged" code in .Net (with which
>> I'm barely passingly familiar) meant high-level code still (e.g.,
>> C#), but without the memory-management features (GC).
>
> Well, C# has that, too. C# syntax tends to agglomerate features quite
> fast. You can have "unmanaged" C# code, with C-like things like
> explicit pointer arithmetic.

That's "unsafe" code. "Unmanaged" code means code that's not produced from
..NET IL.