我有以下代码:
public interface IMyInterface
{
DataGrid ItemsInGrid { get; set; }
}
partial public class MyClass: Window, IMyInterface
{
public DataGrid ItemsInGrid
{
get { return grdItemsInGrid}
set { grdItemsInGrid= value; }
}
}
在另一个文件中:
partial public class MyClass: Window
{
private System.Windows.Forms.DataGrid grdItemsInGrid;
// Reference to private variable here
// This is the designer portion that actually sets up the
// private variable to be shown on the form.
}
现在resharper希望我将
ItemsInGrid
转换为自动属性(public DataGrid ItemsInGrid{ get; set; }
)这怎么可能是一个平等的转变?自动属性会创建一个隐藏的后备变量,该变量与私有
grdItemsInGrid
不匹配,对吗?转磨机坏了吗?还是C#.NET中有我不知道的东西?
编辑:
我在这里感觉到一种常见的错过交流。 grdItemsInGrid是显示在窗体上的网格(MyClass实际上实现了Window)。这个想法是在将MyClass作为IMyInterface传递给方法的情况下,授予对grdItemsInGrid的访问权限。
最佳答案
通过自动属性,无需使用可见的后备变量。这里什么都没坏。这只是一个非常方便的功能。