java
php
css
python
mysql
android
objective-c
visual-studio
multithreading
eclipse
json
perl
oracle
cocoa
apache
mvc
jsp
postgresql
dom
Assuming oEmployee is a reference type (not a struct), if you pass it as an argument, then you are passing the reference. In .NET you should think in terms of Reference types vs Value types.
This article really helped me understand how memory is allocated when I was starting out.
http://www.c-sharpcorner.com/UploadFile/rmcochran/csharp_memory01122006130034PM/csharp_memory.aspx
Assuming employee is a reference type (e.g. any class) the method will return a reference (similar in concept to a pointer in unmanaged languages) to the object instance (usually on the heap). Since only one object instance exists, all changes to it will affect the instance.
employee
If employee is a value type (e.g any struct or primitive type) a separate copy of the instance is returned.