我有以下代码:

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的访问权限。

最佳答案

通过自动属性,无需使用可见的后备变量。这里什么都没坏。这只是一个非常方便的功能。

10-04 12:08