0
我有有默认值空可选参数,如这许多功能:函数,用来检查一个ComboBox.SelectedValue字符串,如果为空,则返回null
public static IEnumerable<Product> GetProducts(int? productCategoryId = null)
在我的LINQ where子句我通常如检查,如果是这样的:
if (productCategoryId == null || productCategoryId == p.ProductCategoryId)
在我的应用程序通常要传递来自Telerik的组合框到功能像这样如此的产品列表可以被过滤下来选择的值:
GetProducts(CategoryComboBox.SelectedValue);
C#不会允许我这样做,因为如果用户没有在ComboBox中选择任何内容,那么所选值将是一个空字符串,它不会与我的函数一起工作,因为如果没有选择,我更喜欢用NULL发送,否则他们选择的是他们的ID。
对此的一个很好的扩展方法的任何建议,或者如果C#/ Telerik ComboBox有一个内置的函数呢?以下是我目前有:
public static int? ToNullableInt32(this string val)
{
int i;
if (Int32.TryParse(val, out i)) return i;
return null;
}
在上面的例子中我也需要得到它返回一个可空INT为空或选择的值作为一个int。
对不起键入该快捷意味着把INT?我现在更新它 – JTunney
你看起来对我来说还好,虽然我个人不会把它做成扩展方法(只是静态工具类的静态方法)。 –
好吧,你有什么经验法则可以让它成为扩展方法吗? – JTunney