返回首页

原因默认情况下,你的类密封:
亲爱的读者,
最近我已检讨/重构代码alot,我必须说,很多时候一些代码,把我推到一个混乱的状态,因为他们不密封。现在读这你可能不知道,我听起来很愚蠢的。问题是,这里用继承。
当有alot的代码,在你的资料库重构/审查什么都在我的情况的原因和有并行的代码库,这是我们和我们的离岸工作。我工作的代码,是一种常见的许多其他项目使用的代码。因此,经常检讨及修正一些警告甚至重构,我来到一个国家,无论是当前类的,我有子类或不工作。
我发现它具有默认密封类强的一个原因是为实施IDispose格局。有2种不同的模式可实际上,在你不把正常的密封类之一,您的私人的Dispose(布尔)虚拟和保护,其他模式你处置(bool)方法和虚拟保护,使其可用于所有其子类。
允许我解释一下我的情况下,通过代码:

class CustomClass{private Process _someProcess;public void SomeMethod(){//Does some work with the process

}}

正如你可以看到从上面的代码,每一件事情看起来很好,甚至你没有得到任何编译器错误/警告,如果你建立了这个代码。但是你需要记住,如果您使用的是一次性的成员,那么它的实现IDisposable接口和调用这个一次性成员的Dispose()方法的最佳实践。这样一种方式,你不打任何内存相关的问题。
因此,同样的事情发生了我从去年2天,在我要经过许多类(迄今10我猜),这是不密封和不实现Dispose模式。所以,既然你已经知道,有风格的Dispose模式,我着手实施其中之一。
但是,问题来了,我应该实现哪一个?是的,你可能会说,继承一去,因为我的课将作为%的O / C的原则,是连我开始还以为相同。但分析代码时,我没有找到任何成员protected修饰符,既不虚方法。所以这是第一个暗示,我确认,是的,我可以把它密封类。
但是,说我的核心代码被用于许多不同的跨库的项目,我什至不有任何访问。所以,我不得不以使夫妇的接触和几个人看到,如果这个类是有子类(可能1疯狂的开发商可能已经实现它吗?)所以它是不是对我好到只是改变和夜间构建的等待失败,因为这个原因。
因此,它几乎花了15-20分钟为我解决这个问题,协商后许多乡亲和其他东西。由于我的代码库是巨大的,所以我每次面对这个问题,这是一个痛苦。这是为什么,你作为一个开发作为密封即使我希望视觉工作室默认情况下,使每堂课的习惯。这样可以节省你的未来一段时间或其他一些机构。
这样做第一步,你肯定不会打破任何代码库中的任何代码,在未来,如果你决定使非密封,那么你可以轻松地与出忧虑可以改变它,仍然会不打破任何代码。但是,如果你想要做的其他方式,那么你是我的朋友在一个大的烂摊子。
希望它能帮助。欢迎您的意见。
快乐编码,感谢{S0的}

回答

评论会员:游客 时间:2012/02/06
zenwalker1985:是的,它不总是需要。但是,开始凭借其良好的实践,使其密封。后,当你想延长,使刚刚启封和你的好去{中三}感谢和你的票非常感谢
加里・诺特:您提供的示例代码有错误

{C}
应该是:

class CustomClass

{

  private Process _someProcess;

 

  public void SomeMethod()

  {

    //Does some work with the process

  }

}


正如你可以(和/或应该)看到,所不同的是,当使用诸如单行,正斜杠commentors了最后两个评论非常需要正确的括号,或"}"

所以,现在你知道
享受。
〜[不]视觉[IZE]基本[S] C#[LY]
〜的ASPX:苹果只需出色执行
评论会员:zenwalker1985 时间:2012/02/06
哦,格式问题。没有看到。感谢