我有一个包含很多静态方法的类,我将其用作一种样式表。
你给它的一个方法一个标签,它设置一堆标签属性,比如颜色、字体系列和字体大小。
我想创建一个页面,您可以在其中查看所有不同的标签样式,因此我想列举这些静态方法,这样我就可以将每个方法应用于一个标签。
这可能吗?有没有更好的方法来模板化对象属性?
public static class Palette
{
public static class LabelStyle
{
public static void H3 (ref Label label)
{
label.TextColor = Xamarin.Forms.Color.White;
label.FontFamily = "Myriad";
label.FontSize = 14;
}
public static void H4 (ref Label label)
{
if (Device.OS == TargetPlatform.iOS)
{
label.FontFamily = Device.OnPlatform ("Myriad Pro", null, null);
}
else
{
label.FontFamily = "Myriad";
}
label.TextColor = Color.BlueBlack;
label.FontSize = 14;
}
...
}
...
}
最佳答案
Reflection是这里的关键词。
typeof(Palette.LabelStyle).GetMethods(BindingFlags.Static)
它也可以用于各种类似的目的。
您可能必须选择适当的绑定(bind)标志。在此示例中,BindingFlags.Static
用于枚举静态方法。对于非公开的,您需要另一个绑定(bind)标志。那将是:
BindingFlags.Static | BindingFlags.NonPublic
例如。
关于c# - 有没有办法枚举一个类中的所有静态函数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32049554/