假设我正在创建一个名为Jokes
的新库,它有一个小的API。为了使我的API易于使用,我将其放在基本命名空间中:
namespace Jokes
--> public interface IJoker
--> string Joke();
--> public static class Jokers
--> public static IJoker NewSlapstickJoker()
--> public static IJoker NewAbsurdJoker()
--> public static IJoker NewCheesyJoker()
Jokers的实现是内部的:
--> internal class SlapstickJoker : IJoker
--> internal class AbsurdJoker : IJoker
--> internal class CheesyJoker : IJoker
现在我非常确定以下是需要遵循的准则(请问有人可以验证一下吗?):
- 不要从根命名空间访问子命名空间中的类型。(例如,
System
中的类型不知道System.Drawing
中的类型)。
这个准则适用于内部类吗?为了避免污染我的根命名空间,我想将我的内部类放在 Jokes.Internal
中。这意味着 Jokes
命名空间中的类型(Jokers
)会知道子命名空间 Jokes.Internal
中的类型。这样可以吗?