タイトルに警告を表示する次のコードがあります。私は以前にこのようなことをしたことがあると確信していますが、警告は出ませんでした。それらの投稿について2つお聞きしたいのですが。1)ここで何が問題を引き起こすでしょうか?2)修正する必要がありますか?
私が尋ねる理由は、この警告が問題を引き起こしていないことは明らかであるため、このコードは正常に機能するためです。私は自分のコードに警告などを含めることに耐えられないので、これに対する解決策を望んでいますが、この警告が発生する理由と、それが何らかの形で有害であるかどうかも知りたいです。
コード:
public class AttributeType
{
private string m_attributeNameField;
public string AttributeName
{
get { return m_attributeNameField; }
set { m_attributeNameField = value; }
}
}
private StandardResponseType ValidateAttributes(string featureType, IEnumerable<AttributeType> attributeList, string userCategory)
{
StandardResponseType standardResponse =
new StandardResponseType(DateTime.Now.ToString(CultureInfo.InvariantCulture), "RWOL_UTILS.Get_Item_Attributes", "", "OK");
if (attributeList.Any())
{
foreach (AttributeType attribute in attributeList)
{
if (attribute.AttributeName == null) continue;
{
//do stuff
}
}
}
else
{
standardResponse.Message = "Error: No attributes passed in the list. ValidateAttributes().";
standardResponse.ResponseCode = "FAIL";
return standardResponse;
}
}
編集:メソッドにはさらに多くのコードがありますが、この問題とは関係ありません。
更新:これを機能させるには、次のコードを追加する必要がありました。これを追加する方が効率的なのはなぜですか?新しいリストを数えて読む必要がある場合、それを行うことと元のアイテムでそれを行うことの違いは何ですか?リストは一度だけ渡されます。リストがメソッド内に入力されていても、そうでない場合は、この問題を理解できました。すでに記入済みで渡されます。
List<AttributeType> newlist = attributeList.ToList();
if (newlist.Count() != 0)
{
foreach (AttributeType attribute in newlist)
............