- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有一组类,它们都扩展同一个基类,比如说 fooboo : foowriter, foobar : foowriter
。这些所有输出文件都有不同的扩展名,例如 fooboo --> .boo
和foobar --> .bar
文件。
我正在使用反射来获取扩展foowriter
的所有具体类型的列表。 ,我需要获取这些类可以生成的所有扩展的列表,即 { ".boo", ".bar" }
此刻每个foowriter
知道它可以生成什么格式,并且它位于只读字段中。我热衷于将这些知识封装在每个具体类中,而不是实现 GetOutputExtension<T>() : where T : foowriter
一些额外类中的方法,因为这将耦合所有 foowriter
具有额外的实用程序类。
我真的不想实例化具体类,因为这可能是一项繁重的操作。
从一组类型中获取公共(public)属性而不实例化它们的好模式或方法是什么?
最佳答案
一种选择是创建自定义属性。这样您就可以将扩展与您的类相关联,而无需实例化它们。
用法:
[Output(Extension = ".boo")]
public class fooboo : foowriter { ... }
[Output(Extension = ".bar")]
public class foobar : foowriter { ... }
缺点是这不会在编译时强制执行。
编辑:但是,您可以为其编写单元测试。
关于c# - 从一组 foowriter 类型的类中检索公共(public)属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22185923/
我有一组类,它们都扩展同一个基类,比如说 fooboo : foowriter, foobar : foowriter 。这些所有输出文件都有不同的扩展名,例如 fooboo --> .boo和foo
我有一组类都扩展了同一个基类,比方说 fooboo : foowriter, foobar : foowriter .这些所有具有不同扩展名的输出文件,比如说 fooboo --> .boo和 foo
我是一名优秀的程序员,十分优秀!