C# “忽略”;无法解析符号“;再竖琴
假设我有这样一个方法签名:C# “忽略”;无法解析符号“;再竖琴,c#,resharper,C#,Resharper,假设我有这样一个方法签名: protected override void Initialize(params object[] parameters) protected override void Initialize(params object[] parameters) { for (int paramIndex = 0; paramIndex < initializationParameterNames.Length; paramIndex++) {
protected override void Initialize(params object[] parameters)
protected override void Initialize(params object[] parameters)
{
for (int paramIndex = 0; paramIndex < initializationParameterNames.Length; paramIndex++)
{
if (parameters.Length <= paramIndex)
throw new ArgumentException("Missing " + initializationParamterNames[paramIndex]);
if (parameters[paramIndex] == null)
throw new ArgumentNullException(initializationParameterNames[paramIndex]);
}
...
}
。。。并且该对象能够准确地处理所有参数。当我对这些参数进行验证时(比如将它们设置为类的字段),其中一个参数为null
,我希望能够在没有ReSharper警告的情况下执行类似的操作:
if (parameters[5] == null)
/* Yields: Cannot resolve symbol 'knownParameterName' */
throw new ArgumentNullException("knownParameterName");
在我的应用程序上下文中,此警告正常。有人知道我需要忽略什么规则吗?我在选项中没有看到任何可以控制此操作的内容,至少在选项对话框中没有显示。你试过在Resharper论坛上提问吗?它们的响应速度非常快。您是否尝试过将参数名放入静态只读字符串数组并调用
throw new ArgumentNullException(initializationParameterNames[5]);
?
你可以这样做:
protected override void Initialize(params object[] parameters)
protected override void Initialize(params object[] parameters)
{
for (int paramIndex = 0; paramIndex < initializationParameterNames.Length; paramIndex++)
{
if (parameters.Length <= paramIndex)
throw new ArgumentException("Missing " + initializationParamterNames[paramIndex]);
if (parameters[paramIndex] == null)
throw new ArgumentNullException(initializationParameterNames[paramIndex]);
}
...
}
protected override void Initialize(参数对象[]参数)
{
对于(int-paramIndex=0;paramIndex//ReSharper disable NotResolvedInText
(或设置检查选项)。