Joa*_*nge 3 .net c# naming-conventions
当你编写一个包含大量类的应用程序时,你是否为你的类名使用前缀/后缀?或者我应该只依赖我已定义的命名空间?
在我的情况下,我有类似的课程:
Blur
Contrast
Sharpen
Invert
...
Run Code Online (Sandbox Code Playgroud)
我只是不知道明天会发生什么,并希望尽可能与BCL中经常使用的类无碰撞.
有任何想法吗?
rme*_*dor 11
我会说不要使用前缀或后缀作为名称 - 这非常接近匈牙利符号,这被广泛认为是坏的,即使是MS的创建者也是如此.这个规则的唯一例外是接口,许多人认为可以作为前缀I,但我认为接口也不应该有前缀.您应该将与命名空间相关的类分组以防止冲突.
避免使用前缀或后缀类,除非:
IFilterGaussianBlurStrategyImageDoesNotSupportFilterTypeExceptionFilterBase我被最后一个撕裂了.我不喜欢看到Base后缀,但是对于API的消费者而言,要知道他们无法根据名称实例化Filter(不先尝试),这真的很难.我不喜欢它,但这是我使用的惯例.
编辑
根据Jon B的评论,后缀自定义委托Handler是常见的(FilterExecutedHandler(object sender, FilterEventArgs e);).虽然委托声明本身不是一个类,但它可能导致名称冲突,所以应该在这里说明.