Level Extreme platform
Subscription
Corporate profile
Products & Services
Support
Legal
Français
Data Record Class Design Question
Message
General information
Forum:
ASP.NET
Category:
Class design
Miscellaneous
Thread ID:
01420594
Message ID:
01421008
Views:
41
>>I'm creating a set of classes to handle data:
>>
>>
>>class CompanyInfo : DataRecordBase
>>{
>>    private string _CompanyName = "";
>>    public string CompanyName
>>    {
>>        get { return _CompanyName; }
>>        set { _CompanyName = value; }
>>    }
>>
>>    public override bool SaveChanges()
>>    {
>>      if(Validate())
>>      {
>>         // Code here to save
>>      }
>>    }
>>    public override void Load()
>>    {
>>    }
>>
>>    private bool Validate()
>>    {
>>        bool bRetVal = true;
>>
>>        if (_CompanyName == "")
>>        {
>>        }
>>
>>        return bRetVal;
>>    }
>>}
>>
>>
>>They are all based off the abstract class DataRecordBase. The question is this - If the Validate method returns false, because a property is not complete, what should happen? I don't want to raise an exception?
>>
>>Since this is a non-visual class I don't want to pop up a message in this class. I'm thinking that Validate should set a class variable to an appropriate message, and maybe set a public IsValid flag to false.
>>
>>Then, in the form or class that uses it, if SaveChanges returns False then I know that the message property would be populated with something like "The Customer Name cannot be empty".
>
>I'm never in favour of public variables. You could use an out parameter to pass back the error message (or even an array of error messages) so something like:
>        public bool SaveChanges(out string msg)
>        {
>            if (!Validate())
>            {
>                msg = "This went wrong";
>                return false;
>            }
>            else return true; 
>        }
Called with
string str;
>            if (!CompanyInfoInstance.SaveChanges(out str))
>            {
>                MessageBox.Show(str);
>            }
BTW, if this is WinForms have you thought of using the ErrorProvider class in the UI?
>Regards,
>Viv

I guess I could, but this class just represents a data record. It's not visual. That's why I thought a property defined in the base would work.
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