归还财产

时间:2015-08-07 10:26:48

标签: c# .net

我开始使用以下方法分组来使我的代码更具可读性:

public interface IUserMethodGroup
{
   void SomeMethodOne();
   String SomeMethodTwo();
}

//File MainClass.Users.cs
public partial class MainClass : IUserMethodGroup
{
   void IUserMethodGroup.SomeMethodOne(){ //some code }
   String IUserMethodGroup.SomeMethodTwo(){ return "some str";}
}

//File MainClass.cs
public partial class MainClass
{
    //HOW ABOUT PERFORMANCE?
    public IUserMethodGroup UserHandle {get { return this; } }       
}

它对性能有很大影响吗?

编辑1

这允许我这样做:

class ConsumerClass
{
   public void Method()
   {
      MainClass mc = new MainClass();

      mc.UserHandle.SomeMethodOne();

      //@ vc 74:
      //Interface has to be explicitly, otherwise it will be:
      ms.SomeMethodOne(); //grouping lost...
    }
}

@adelphus: 考虑我有5个类似的属性(方法组)。每次我想使用组中的一些方法,我都要求类返回自己。与没有小组实施相比,它会慢得多吗?

1 个答案:

答案 0 :(得分:1)

  

每次我想使用第一组中的某个方法,要求类返回自己。与没有小组实施相比,它会慢得多吗?

没有。在只读属性中返回this应该只是一行IL代码。事实上甚至可能由JIT优化器内联。

更大的问题是为什么你在一个班级有这么多方法?有这么多的方法,他们需要"组织"通过显式接口实现,闻起来就像你有一个做得太多的类。

这个设计 允许的一件事是让你有不同的类来实现不同的"组"。然后,您的单个类将成为一个聚合器,将多个不同接口的功能组合到一个类中。