Level Extreme platform
Subscription
Corporate profile
Products & Services
Support
Legal
Français
Property Get Runs When Class Instantiated
Message
 
To
09/04/2009 16:23:20
Mike Cole
Yellow Lab Technologies
Stanley, Iowa, United States
General information
Forum:
ASP.NET
Category:
Coding, syntax and commands
Miscellaneous
Thread ID:
01394040
Message ID:
01394050
Views:
37
Here is the class:
class csCompany : csDataRecordBase
{
    private ArrayList _colClients = new ArrayList();
    public ArrayList colClients
    {
        get
        {
            if (_colClients.Count == 0)
            {
                _LoadClients();
            }
            return _colClients;
        }
    }
    
    private string _sCompanyName = "";
    public string sCompanyName
    {
        get { return _sCompanyName; }
        set { _sCompanyName = value; }
    }

    public override bool LoadData()
    {
        bool bRetVal = true;
        SqlDataReader rdrReader = csAppDataAccess.GetCompany(this.iRecordId);

        if (csAppDataAccess.oException == null)
        {
            rdrReader.Read();
            _sCompanyName = rdrReader["CompanyName"].ToString();
        }
        else
        {
            this.oException = csAppDataAccess.oException;
            bRetVal = false;
        }

        return bRetVal;
    }


    private void _LoadClients()
    {
        _colClients.Clear();

        csClients oClients = new csClients();
        oClients.LoadData(this.iRecordId);
        _colClients = oClients.colData;
    }


}
And here's the instantiation:
csCompany oCompany = new csCompany();
When I hover over oCompany and expand the tooltip, colClients shows "Count = 3"

I have no idea why.









>>I have a property on a Company class:
>>
>>
>>private ArrayList _colClients = new ArrayList();
>>public ArrayList colClients
>>{
>>    get
>>    {
>>        if (_colClients.Count == 0)
>>        {
>>            _LoadClients();
>>        }
>>        return _colClients;
>>    }
>>}
>>
>>
>>When I instantiate the class, the colClients collection is being loaded. I put a breakpoint on the IF() inside the Get, but it doesn't break. Yet when I look at colClients.Count, it's set to 3 instances of a Client class.
>>
>>Anyone know why the Get assesor is firing when the class is instantiated?
>
>Search your class for any references to "colClients".
Everything makes sense in someone's mind
public class SystemCrasher :ICrashable
In addition, an integer field is not for irrational people
Previous
Next
Reply
Map
View

Click here to load this message in the networking platform