将"公共"成员置于"内部"类中是不是一种糟糕的编程习惯?

Man*_*ani 12 c# internal-class

如果我只将"受保护","内部"和"私人"成员(字段,方法,财产,事件)保留在一个被声明为"内部"的类中,那么这不是更具体和恰当吗?

我已经在各种代码中看到了这种做法(在"内部"类中有"公共"成员),所以只是想知道这是一种不好的做法,还是有一些好处或优势.

[只关心C#]感谢您的关注.

cas*_*One 8

不必要.如果要隐式实现接口,那么公共成员是可接受的.

一般来说,如果班级是内部的,公共成员没有多大意义.您不会受到伤害,因为您将无法在其定义的模块之外以强类型方式公开类,但如果您没有隐式实现接口,则没有太大的优势.


Dan*_*ant 5

假设这些公共成员仍然是该类的公共接口的一部分是合理的,即使该类本身具有内部范围.当我看到internal一个班级成员时,这对我说"有点狡猾的后门访问表达紧密耦合,而public在我的脑海中仍然暗示适当的防御性编程责任.这纯粹是一种概念上的区别.

  • +1恕我直言,公共类的内部成员是半封装的.除非绝对必要,否则我会避开它们(我觉得很少见). (2认同)