代码背后和单独的 C# 类之间的区别

Posted

技术标签:

【中文标题】代码背后和单独的 C# 类之间的区别【英文标题】:Different between code behind and separate C# class 【发布时间】:2012-06-23 22:46:20 【问题描述】:

我已经使用 ASP.net 4.0 在 Web 套接字上创建了我的应用程序。我只是想知道是否可以使用背后的代码来实现游戏逻辑以创建 Web Socket 游戏或继续使用 separet 类?背后的代码和单独的 C# 类之间的主要区别是什么?

【问题讨论】:

如果没有关于您的软件架构的更多详细信息,无法回答。 一个代码隐藏一个[你的语言]类。现在,您应该将所有内容都放在代码隐藏中吗?当然不是。代码隐藏充当设计表面(标记)和 ASP.NET 面向控件的模型之间的“粘合剂”。 好点,几乎可以得到我的答案 【参考方案1】:

您希望将游戏逻辑放在代码后面的唯一原因是利用页面生命周期或直接与页面/表单元素交互。将您的游戏逻辑留在一个单独的类中,使其更易于测试。

代码隐藏作为部分类“连接”到页面本身(这就是它可以驻留在单独文件中的方式)。您的业​​务逻辑和数据访问应该驻留在一个单独的类中,以尝试为与页面本身更密切相关的事务保留代码隐藏。

【讨论】:

基本上,关注点分离是主要的。【参考方案2】:

我的看法:

代码隐藏 = 演示 Class = Structure(业务逻辑、实现等)

因此,使用代码隐藏是可行的,但缺少重用代码或稍后重构,因为您的代码都集中在一处。对象应该在那里允许您划分逻辑并将其与用户界面分开。

把它想象成任何 javascript 库。当然,您发布的每个网站都可以在其页面上包含整个库,但它更适合作为包含库,然后您可以在每个页面上引用和使用。

【讨论】:

class == structure??无论如何,你的解释有点混乱......作为一个经验丰富的 ASP.NET 用户,我认为我明白你在说什么,但这里的清晰度不够,无法对 OP 有所帮助。 实际上已经使用单独的 c# 类在 Web 套接字上创建了应用程序,而无需使用后面的代码?使用 web socket 不使用代码背后的原因是什么?或者使用代码背后的主要原因是什么? @RobertHarvey:我闻到你在踩的东西;我想我的主要前​​提是 anything 在代码隐藏中是可能的,但是当这一切都在一个文件中完成并且没有通用/通用并单独实现时,保持责任分离非常缺乏。我可以重新连接到数据库,声明一个类并使用它,并在代码隐藏中为用户制作一个 UI,但我会在每个代码隐藏中这样做。这当然不会保留您的代码DRY。 有一些不错的品脱,但我仍然没有得到答案。已经使用单独的 c# 类在 Web 套接字上创建的应用程序而不使用后面的代码?使用 web socket 不使用代码背后的原因是什么?或者使用代码背后的主要原因是什么?

以上是关于代码背后和单独的 C# 类之间的区别的主要内容,如果未能解决你的问题,请参考以下文章

C# - 使用部分类还是单独类? [复制]

编写高质量代码改善C#程序的157个建议——建议28:理解延迟求值和主动求值之间的区别

== 和 Equals() 之间的 C# 区别

c#和java - hmacsha256 hash之间的区别

接口和抽象类之间的区别

WPF背后的C#代码中的XPath