为什么我应该使用Attributes而不是实现接口
本文关键字:实现 接口 Attributes 我应该 为什么 | 更新日期: 2023-09-27 18:28:07
为什么使用属性而不是从接口继承?这不是比在C#(属性)中添加一个全新的概念更容易实现接口吗?
Atribute示例:
[Serializable]
public class MyObject {
public int n1 = 0;
public int n2 = 0;
public String str = null;
}
接口示例:
public class MyObject: ISerializable {
public byte[] getBinaryData() { // some code }
public int n1 = 0;
public int n2 = 0;
public String str = null;
}
您的示例并没有涵盖属性提供的所有功能。使用interface
,您无法表达有关类或方法的附加信息。你需要使用属性。
来自MSDN
•属性为程序添加元数据。元数据是关于程序中定义的类型的信息。所有.NET程序集都包含一组指定的元数据,这些元数据描述程序集中定义的类型和类型成员。您可以添加自定义属性来指定所需的任何附加信息。
•您可以将一个或多个属性应用于整个程序集、模块或较小的程序元素,如类和属性。
•属性可以以与方法和属性相同的方式接受参数。
•您的程序可以使用反射来检查自己的元数据或其他程序中的元数据。