作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我目前正忙于为现有技术实现一个流畅的接口(interface),这将允许类似于以下代码段的代码:
using (var directory = Open.Directory(@"path\to\some\directory"))
{
using (var file = Open.File("foobar.html").In(directory))
{
// ...
}
}
Open.File(...).In(...)
构造,你需要两个类:
// handles 'Open.XXX':
public static class OpenPhrase
{
// handles 'Open.File(XXX)':
public static OpenFilePhrase File(string filename)
{
return new OpenFilePhrase(filename);
}
// handles 'Open.Directory(XXX)':
public static DirectoryObject Directory(string path)
{
// ...
}
}
// handles 'Open.File(XXX).XXX':
public class OpenFilePhrase
{
internal OpenFilePhrase(string filename)
{
_filename = filename
}
// handles 'Open.File(XXX).In(XXX):
public FileObject In(DirectoryObject directory)
{
// ...
}
private readonly string _filename;
}
最佳答案
一般来说,生命周期非常短的对象正是 GC 处理效率最高的对象,因为它们中的大多数将在下一次次要收集运行时死亡——在任何体面的 GC 实现中,成本次要集合与事件对象的总大小成正比。因此,短期对象的成本非常低,并且它们的分配只意味着向上碰撞一个指针,这很快。
所以我会说:可能没有显着的性能影响。
关于.net - 流畅的接口(interface)是否会显着影响 .NET 应用程序的运行时性能?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2556390/
我是一名优秀的程序员,十分优秀!