在C#中,重复代码可以通过创建自定义属性来避免。属性是一种特殊的类,它们可以附加到类、方法、属性等上,以提供元数据或其他描述性信息。以下是一个简单的示例,说明如何创建一个自定义属性来避免重复代码:
RepeatableAttribute
的自定义属性:[AttributeUsage(AttributeTargets.Method | AttributeTargets.Class | AttributeTargets.Property)]
public class RepeatableAttribute : Attribute
{
public int Count { get; set; }
public RepeatableAttribute(int count)
{
Count = count;
}
}
[Repeatable(5)]
public void MyMethod()
{
// Your code here
}
RepeatableAttribute
并执行相应的重复次数:public static class RepeatableExtensions
{
public static void Repeat(this Action action, int repeatCount)
{
for (int i = 0; i< repeatCount; i++)
{
action();
}
}
}
现在,您可以使用此扩展方法在任何方法上应用重复行为:
public void MyMethod()
{
// Your code here
}
public void Run()
{
var methodInfo = typeof(MyClass).GetMethod("MyMethod");
var repeatableAttribute = methodInfo.GetCustomAttribute<RepeatableAttribute>();
if (repeatableAttribute != null)
{
MyMethod.Repeat(repeatableAttribute.Count);
}
}
这样,您就可以通过自定义属性避免在C#中重复代码,并根据需要轻松地更改重复次数。
领取专属 10元无门槛券
手把手带您无忧上云