Why we declare class name as data type in C# as well as method return type as class name.

why we declare class name as data type in C# as well as method return type as class name.

e.g
private TraceViewContainerModel cmTraceviewContainer;
internal Device device;

here TraceViewContainerModel and Device is class name.

public TraceViewViewModel AddTraceObject(TraceObject trc, bool isNew)
{
bool useCurrentAxisSettings = false;
ZedGraph.Scale xaxisScale = null;

Again TraceViewViewModel this is class which is declare as return type in another class.