c# - 当Attributes服务于此目的时,标记接口(interface)的需求是什么?

标签 c# .net

我有点迷茫

The purpose of Marker Interface Vs Attributes.

他们的目的在我看来是一样的(如果我错了请原谅我)。

谁能解释一下它们的目的有何不同?

最佳答案

以下是两者的一些优点。

标记接口(interface):

  • 使用动态类型检查更容易检查(“obj 是 IMarker”);
  • 允许 future 的功能和数据可扩展性(即将“标记”接口(interface)转变为实际声明一些成员的“完整”接口(interface));
  • 可用于泛型类型约束;

另一方面,属性:

  • 提供更清晰的元数据分离;
  • 允许通过它们的构造函数或属性指定附加信息;
  • 允许对一个实体进行多次应用;
  • 在适用于不同类型的实体方面具有通用性,而不仅仅是类;

这在很大程度上取决于特定应用程序的架构和设计,在特定情况下是否适合使用标记接口(interface)或属性。

关于c# - 当Attributes服务于此目的时,标记接口(interface)的需求是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3923733/

相关文章:

c# - ASP.NET MVC 项目层

.net - 如何用 .net 中的新字符串替换第 n 个正则表达式组?

.net - 录制鼠标中键和滚轮滚动

c# - 尝试使用 C# 连接 Couchbase 服务器时返回内部异常

c# - 使 "CS0642 C# Possible mistaken empty statement"成为编译器错误?

c# - 是否可以在类成员函数中使用 switch 语句并获取访问器?

c# - 区分超时和用户取消

c# - 如何使用 Expression (C#) 引发父类事件

c# - 用于检测 C# 和非托管 C++ 应用程序内存泄漏的工具

c# - 使用 linq 查找索引位置,但要考虑依赖于值的关系