具有虚拟属性的分部类

本文关键字:属性 虚拟 | 更新日期: 2023-09-27 17:58:52

是否可能在分部类中具有虚拟属性?在我的场景中,我们有自动生成的类,这些类由我们的Micro ORM使用,并精确地映射到我们的数据库表。

然而,我们经常希望扩展这些类,所以在这种情况下使用partial关键字是完全可以的。

不过,我有一种情况,我想在分部类中重写自动生成的getter。

例如:

public partial class MyClass {
   public int MyProperty{ get; set; }
}

我想覆盖get并实现一些自定义逻辑,而不需要操作自动生成的代码。这一点至关重要。

谢谢。

具有虚拟属性的分部类

也许您可以修改自动生成的类,将get和set放在其他文件中。示例:

// file: MyClass_1.cs
public partial class MyClass
{
   public int MyProperty
   {
      get { this.MyPropertyGet(); }
      set { this.MyPropertySet(value); }
   }
}

在其他文件中:

// file: MyClass_2.cs
public partial class MyClass
{
   private int _myProperty;
   private int MyPropertyGet()
   {
      return _myProperty;
   }
   private void MyPropertySet(int value)
   {
      _myProperty = value;
   }
}