public IQueryable<Profile> FindAllProfiles(string CountryFrom, string CountryLoc)
{
....
}
对于上述方法,是否可以使用可为空的输入参数CountryFrom和CountryLoc?当我调用这个方法时,我必须传入2个值,否则我可能会遇到异常。任何想法..?
答案 0 :(得分:3)
答案 1 :(得分:2)
正如其他人所说,string
已经可以为空......
由于您使用的是string
,因此您需要在使用参数前对string.IsNullOrEmpty(yourString)
进行测试,以验证实际存在的值。
答案 2 :(得分:2)
您需要在条目中检查字符串,使用IsNullOrEmpty
可能是最好的方法(除非空字符串(“”)有效),然后您可以返回null或设置默认值并继续处理甚至抛出你自己的异常(并在你的调用例程中捕获它)。
我很想说,如果你有一个你知道的方法调用不能接受在之前检查的空参数,你调用方法并在你的调用类中处理它。
答案 3 :(得分:1)
string
可以为空。你的意思是不可空吗?
答案 4 :(得分:1)
string
是引用类型,因此已经可以为空。您可以致电FindAllProfiles(null, null)
,代码将至少编译。当然,您需要确保方法体适当地处理空参数,但这是辅助的。
或者,如果您只是想在运行时禁止使用任何null参数调用FindAllProfiles
函数(对吗?),只需在方法顶部使用guard语句:
if (CountryFrom == null)
throw new ArgumentNullException("CountryFrom")
if (CountryTo == null)
throw new ArgumentNullException("CountryTo")
附注:根据所有样式指南,函数参数名称应写在 camelCase 中。
答案 5 :(得分:1)
你的问题是否可以为空,但似乎暗示他们一定不能为空。
因为string
是引用类型,所以它们可以为空(并且必须可以为空)。没有办法强制(在编译时)它们具有非空值。