coderush

How to get the variable for which a property is defined in coderush?


private int _i;

public int  Count
{
    get {  return _i;  }
}

How to get the variable _i when we have the property "Count" using CodeRush APIs.


Solution

  • Try the following code, hopefully it will be of some help:

    Variable GetPropertyVariable(Property property)
    {
      if (property == null)
        return null;
    
      Get getter = property.Getter;
      if (getter == null)
        return null;
    
      Return returnStatement = getter.FindChildByElementType(LanguageElementType.Return) as Return;
      if (returnStatement == null)
        return null;
    
      Expression returnExpression = returnStatement.Expression;
      ElementReferenceExpression targetExpression = returnExpression as ElementReferenceExpression;
      if (targetExpression == null)
        targetExpression = returnExpression.FindChildByElementType(LanguageElementType.ElementReferenceExpression) as ElementReferenceExpression;
      if (targetExpression == null)
        return null;
    
      return targetExpression.GetDeclaration(true) as Variable;
    }