我一直在努力学习更多关于C#语言的知识,但是我还没有看到一个人会使用命名空间别名的情况.
using someOtherName = System.Timers.Timer;
Run Code Online (Sandbox Code Playgroud)
在我看来,它只会增加对理解语言的困惑.有人可以解释一下.
谢谢
我试图找出如何最好地实现扩展方法,以在我的库用户可能希望覆盖各种接口的某些默认实现时注册服务。似乎有两种处理方法。
第一种方法是在扩展方法内部使用services.TryAdd,这将使您能够在调用主扩展方法之前通过使用services.Add注册替代实现,以便您的实现首先到达那里。这行得通,因为如果接口已经注册了某些东西,.TryAdd将不会添加。
如果扩展方法使用普通的旧服务.Add而不是.TryAdd,则您仍然可以覆盖实现,但是现在您必须在调用添加了默认实现的主扩展方法之后注册实现。
在我看来,第一种方法似乎更好。如果调用services.Add,使用接口的不同实现多次添加,则它们都会被注册,并且您实际上可以依赖于该接口的IEnumerable来获取所有它们。但是,如果您确实只需要在应用程序中实现一个,那么最好不要在集合中包含任何其他实现。显然,如果该应用程序确实使用了该接口的多个实现,则您需要添加所需的所有实现。
我想知道是否就此或建议达成共识,还是仅取决于个人口味。
我在http://www.dotnetperls.com/namespace中读到以下内容:
命名空间对于C#程序不是必需的.它们通常用于使代码更清晰.
这让我很困惑,因为我有一个你应该总是使用命名空间的主张.我试图通过VS2010删除自动生成的命名空间来创建一个win表单应用程序,但代码不能编译.
所以,我的困惑在于: