我开始使用以下方法分组来使我的代码更具可读性:
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个类似的属性(方法组)。每次我想使用组中的一些方法,我都要求类返回自己。与没有小组实施相比,它会慢得多吗?
答案 0 :(得分:1)
每次我想使用第一组中的某个方法,要求类返回自己。与没有小组实施相比,它会慢得多吗?
没有。在只读属性中返回this
应该只是一行IL代码。事实上甚至可能由JIT优化器内联。
更大的问题是为什么你在一个班级有这么多方法?有这么多的方法,他们需要"组织"通过显式接口实现,闻起来就像你有一个做得太多的类。
这个设计 允许的一件事是让你有不同的类来实现不同的"组"。然后,您的单个类将成为一个聚合器,将多个不同接口的功能组合到一个类中。