class object is already a reference type so if we passed in function & changed value then it reflects outside function.
i used ref keyword to value type variable like int to get changes in outside function.
but i understand new thing is
when we instantiate any class, two space allocated in memory.
reference stored in stack & value stored in heap
when u pass any reference type object in functions it create new memory space for that reference
its called copy reference.
differnece between ref keyword used in function & without ref keyword
private void mainf()
{
ClsData ObjData = new ClsData(1, "sai");
ChangeNumber(ObjData);
}
without ref keyword - if u assign null to that object it doesnt reflect outside function means that copy reference get erased.
private void ChangeNumber(ClsData ObjData)
{
ObjData.Name = "Swapnil";
ObjData.Number = 3;
ObjData = null; //copy reference get erased not actual object reference , doesn't reflect outside function
}
but when u used ref keyword it doesnt create copy it pass same object to that function so if u assign null to that object it reflects outside
ChangeNumber(ref ObjData);
private void ChangeNumber(ref ClsData ObjData)
{
ObjData.Name = "Swapnil";
ObjData.Number = 3;
ObjData = null; // reflect outside function
}
thats it.