-1

what is difference between public class object=new class() and public class object{get;set;}.

when i am trying to public ProviderPInfo obj = new ProviderPInfo(); it is workig perfectly but when i am trying to this public ProviderPInfo providerpersonalinfo { get; set;} it gives me:

System.NullReferenceException: 'Object reference not set to an instance of an object.'**

model class:

public class ProviderPInfo
{
    public string UserID { get; set; }
    public string Email { get; set; }
    public string PhoneNumber { get; set; }
    public string UserName { get; set; }
    public string FirstName { get; set; }
    public string LastName { get; set; }
    public string Address { get; set; }
    public string City { get; set; }
    public string State { get; set; }
    public string ZipCode { get; set; }
    public string MobilePhone { get; set; }
    public Nullable<byte> UserType { get; set; }
    public Nullable<bool> Status { get; set; }
}

class where object is instentiate;

public class provider {
    public ProviderPInfo obj = new ProviderPInfo();
    public ProviderPInfo providerpersonalinfo { get; set;}      
}

code where data is getting;

List<User> objList = db.Users.Where(x => x.UserType == 50).ToList();
     
        List<provider> retObj = new List<provider>();
        foreach (var item in objList)
        {
            provider obj = new provider();
          
            //obj.providerpersonalinfo=
            try
            {
                //string a = item.FirstName;

                obj.obj.Email = item.Email;
                obj.obj.UserID = item.UserID;
                obj.obj.FirstName = item.FirstName;
                obj.obj.LastName = item.LastName;
                obj.obj.PhoneNumber = item.PhoneNumber;
                obj.obj.Address = item.Address;
                obj.obj.City = item.City;
                obj.obj.State = item.State;
                obj.obj.ZipCode = item.ZipCode;
                obj.obj.MobilePhone = item.MobilePhone;
                obj.obj.UserType = item.UserType;
                obj.obj.Status = item.Status;
                //obj.providerpersonalinfo.LastName = item.LastName;
                //obj.providerpersonalinfo.Email = item.Email;
                //obj.providerpersonalinfo.UserID = item.UserID;
                //obj.providerpersonalinfo.PhoneNumber = item.PhoneNumber;
                //obj.providerpersonalinfo.Address = item.Address;
                //obj.providerpersonalinfo.City = item.City;
                //obj.providerpersonalinfo.State = item.State;
                //obj.providerpersonalinfo.ZipCode = item.ZipCode;
                //obj.providerpersonalinfo.MobilePhone = item.MobilePhone;
                //obj.providerpersonalinfo.UserType = item.UserType;
                //obj.providerpersonalinfo.Status = item.Status;
            }
            catch(Exception ex) {
                throw ex;
            }
Andrew Truckle
  • 17,769
  • 16
  • 66
  • 164
  • Also see: [What is a NullReferenceException, and how do I fix it?](https://stackoverflow.com/questions/4660142/what-is-a-nullreferenceexception-and-how-do-i-fix-it) – gunr2171 Jul 14 '21 at 12:12
  • Also see: [Null Reference Exception for Class Lists](https://stackoverflow.com/questions/38510963/null-reference-exception-for-class-lists/38511001) – gunr2171 Jul 14 '21 at 12:13

1 Answers1

0
public ProviderPInfo providerpersonalinfo { get; set;}

Respect then Encapsulation principle.

Technically in encapsulation, the variables or data of a class are hidden from any other class and can be accessed only through any member function of own class in which they are declared.

for example you can

public ProviderPInfo providerpersonalinfo { get; private set;}

Pratically in POCO Classes there is no difference.

providerpersonalinfo is null in the beginning, you can assign in constructor or like this.

public ProviderPInfo providerpersonalinfo { get; set;}=new ProviderPInfo();
Xilmiki
  • 1,453
  • 15
  • 22