命名空间隐含的上下文有多重要?

Joe*_*oey 8 .net c# namespaces

好吧,标题可能听起来有点模糊,但我真的想不出更清楚的东西.

我最近在地方,我需要一个位置Point类,只需用两个属性,XY和一个构造函数Point(int x, int y).没有什么花哨.现在这个东西已经存在于.NET中,但这是在一个库中处理地图上的某些对象并拖入System.Drawing这个只是觉得......错误的某种方式.即使System.Drawing.Point完全符合我的需求,我现在又在该项目中创建了该结构.

现在我想知道这是否是正确或明智的事情.System.Drawing.Point如果我没记错的话,也会提到那个集会.把一些东西System.Drawing放入一个完全没有图画的相关背景中有点奇怪.

思考?如果它不暗示对另一个组件的引用怎么办?

Dir*_*mar 6

到目前为止,我不同意其他答案并说它确实很重要.该Point示例是一个简单的示例,但通常在上下文中使用类而未设计的类可能会产生不良影响.

可能仅针对特定用例实现了类,例如,不支持线程安全性,需要在框架内使用或暴露代码中不需要的功能.

当部署更新版本的程序集时,它可能会特别导致问题,它不再与您使用它的方式兼容,或者较新版本会带来您不希望在代码中拥有的其他成员和依赖项.


Pau*_*ner 3

命名空间的上下文对于实现类的精确功能至关重要;从一个命名空间到下一个命名空间,类Connection将是一种非常不同的野兽。一个Web.Cache类是否适合在其他应用程序中进行缓存,或者它是否对 Web 基础设施有基本的依赖?

MSDN描述System.Drawing.Point结构如下:

“表示一对有序的整数 x 坐标和 y 坐标,定义二维平面中的点。”

通过这样的一般描述,可以说该结构只是偶然与绘图相关,并且确实属于更基本的命名空间。

然而,由于它确实存在于 中System.Drawing,因此意味着它代表二维绘图空间中的一个点。因此,将其用于绘图以外的目的是对该类的误用;它可能可以满足您的需求,但并未用于其最初的目的。