参数助手






2.80/5 (5投票s)
一个参数助手,用于检查传递给方法中的参数。
引言
此代码示例展示了如何使您的公共方法更安全地使用。特别是,如果它们要作为库被其他人使用,而这些人无法访问源代码。
背景
我想分享一些功能,以帮助公共方法/属性的参数检查。程序集中所有 public
/internal
方法都应该具有适当的参数检查,并抛出适当的异常。
ArgumentNullException
– 当必须指定参数时,传递了null
。ArgumentException
– 传递的参数由于某种原因无效。
使用代码
显然,异常应该只在适当的时候抛出,但是如果您的方法中的代码要求参数处于某种状态,则需要确保这一点。为此,我添加了一些助手
ArgumentHelper.AssertEnumMember<T>(enumArgument);
ArgumentHelper.AssertEnumMember<T>(enumArgument, enumValuesValid[]);
ArgumentHelper.AssertNotNull<T>(notNullArgument, " notNullArgument ");
ArgumentHelper.AssertNotEmptyAndNotNull(notEmptyAndNotNullArgument,
"notEmptyAndNotNullArgument");
它们非常容易理解,但对于简单的检查很有用。
/// <summary>
/// Retrieves all available plugins based on plugin type.
/// </summary>
/// <param name="pluginType">Type of plugins to get.</param>
/// <param name="plugins">List to populate.</param>
/// <param name="pluginFile">Some plugin file.</param>
/// <param name="canBeNull">Can be null string.</param>
/// <returns>True if successful.</returns>
public static bool GetAllPlugins(PluginType pluginType, IList<string> plugins,
string pluginFile, string canBeNull)
{
ArgumentHelper.AssertEnumMember<PluginType>(pluginType,
new PluginType[] {PluginType.Global, PluginType.Packager});
ArgumentHelper.AssertNotNull<IList<string>>(plugins, "plugins");
ArgumentHelper.AssertNotEmptyAndNotNull(pluginFile, "pluginFile");
if (canBeNull == null) //can be null so need need to check above.
return false;
}
历史
- 2009/3/20 - 上传。