I'm writing a simple C# class that handle SQL queries in a specific contest. Most of the queries will be SELECT
statement with 3-4 parameters that should be escaped properly, so the function will be something like this
public DataTable Select(string query, string[] parameters) {
# some code
}
Should parameters
be an Array
or a List<>
? Is there some best practice when choosing between these two types as function parameter or is it just a matter of preferences?
P.S. I usually prefer List<>
because of the flexibility but here the possibility to create an Array
on the fly is a good point.
You should use IEnumerable, then it can be either since both list
and array
implement this
public DataTable Select(string query, IEnumerable<string> parameters)
They also both implement IList
and ICollection
, which may offer other useful properties as shown by Tim Schmelter in the comments
According to the Robustness principle, or Postel's law (emphasis mine):
Be conservative in what you do, be liberal in what you accept from others
In other words, use the "broadest" type possible, the one higher up in the inheritance hierarchy, so as to:
In this case:
IEnumerable<T>
.ICollection<T>
would be the most liberal optionIList<T>
.If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With