Resharper が未使用の変数があることを示すコードがありますが、変数は間違いなく使用されています。変数は Databind() で使用され、バインドするフィールドは文字列として指定されます。フィールド名は文字列変数を使用してアクセスされるため、Resharper はそれらが使用されているとは考えません。
次のコード サンプルでは、Resharper から public 変数を private に変更するように指示されています。それを行った後、変数は使用されておらず、削除できることがわかります。変数が使用され、公開されている必要があるため、これらの提案はどちらも間違っています。
Resharper がこれについて私に警告し、黄色で表示されるのが気に入りません。コードグリーンをチェックインしたいと思います。コメントで抑制するオプションを使用してこれを無視できることはわかっていますが、過去にこのオプションを使用する必要はなく、コードをグリーンにする他の解決策を見つけることができました。この場合、別の方法を見つけることができませんでした。この変数が使用されていることを Resharper に認識させる方法を知っている人はいますか?
using System;
using System.Collections;
using System.Web.UI.WebControls;
public partial class TestCode_General_ResharperTest : System.Web.UI.Page
{
private class TestClass
{
public TestClass(string name, string id)
{
ID = id;
Name = name;
}
public string ID; /*Resharper says this can be made private*/
public string Name; /*Resharper says this can be made private*/
}
protected void Page_Load(object sender, EventArgs e)
{
if (!Page.IsPostBack)
{
DropDownList testList = new DropDownList();
ArrayList groups = getTestList();
testList.DataSource = groups;
testList.DataValueField = "ID";
testList.DataTextField = "Name";
testList.DataBind(); /* Databind causes the public variables to be accessed.*/
}
}
private static ArrayList getTestList()
{
ArrayList groupInfo = new ArrayList();
string[] pairs = new[] { "Test:1", "Test 2:2", "Test 3:3" };
foreach (string pair in pairs)
{
string[] values = pair.Split(new[] { ':' });
groupInfo.Add(new TestClass(values[0], values[1]));
}
return groupInfo;
}
}