KnowledgeHub
Questions
Tags
Users
Search
Alex Rivera
|
Logout
Edit Question
Title
Body
I have a couple of classes that I wish to tag with a particular attribute. I have two approaches in mind. One involves using an Attribute-extending class. The other uses an empty interface: Attributes public class FoodAttribute : Attribute { } [Food] public class Pizza { /* ... */ } [Food] public class Pancake { /* ... */ } if (obj.IsDefined(typeof(FoodAttribute), false)) { /* ... */ } Interface public interface IFoodTag { } public class Pizza : IFoodTag { /* ... */ } public class Pancake : IFoodTag { /* ... */ } if (obj is IFoodTag) { /* ... */ } I'm hesitant to use the attributes due to its usage of Reflection. At the same time, however, I'm hesitant on creating an empty interface that is only really serving as a tag. I've stress-tested both and the time difference between the two is only about three milliseconds, so performance is not at stake here.
Tags (comma-separated)
Save Edits
Cancel