As others have said, you're mixing implicitly typed variables (type inference), and an explictly typed function signature.
What you should have is:
var Input = txtQuestion.text; // Implicitly typed variable of type string
listview1.itemsource = getinput(Input);
// Strongly typed method taking string, returning List<answers>
public List<answers>getinput(string question)
{
var result = new List<answers>();
result.Add(answer);
return result;
}
Sorry if this doesn't exactly match your code, but it should demonstrate what you're after.
The var keyword is used to infer the type of a variable from the right-hand side of the assignment operator. In a method's signature, there's no assignment operator, so inference can't take place. Further, you could always pass any number of types derived from a base class, which would make it difficult for the compiler to determine the correct type of the argument. (Did you mean DbReader, SqlDbReader, or IDbReader?)
Variables can be inferred. Parameters cannot.