<p>I have an object that needs a test if the object data is valid. The validation itself would be called from the thread that instatiated the object, it looks like this:</p>

<pre><code> {
  if (_step.Equals(string.Empty)) return false;
  if (_type.Equals(string.Empty)) return false;
  if (_setup.Equals(string.Empty)) return false;
  return true;
}
</code></pre>

<p>Would it be better to implement this as a property, or as a method, and why? I have read the answers to a <a href="https://stackoverflow.com/questions/164023/what-guidelines-are-appropriate-for-determining-when-to-implement-a-class-membe">related question</a>, but I don't think this specific question is covered there.</p>

I would say as a Property.
```
```
if(something.IsValid) { ...
```
```
looks better then
```
```
if(something.IsValid()) { ...
```
```
Also an example from MSDN:
http://msdn.microsoft.com/en-us/library/system.web.ui.page.isvalid(VS.71).aspx