有没有办法枚举类中的所有静态函数?

kor*_*737 2 .net c# ienumerable static xamarin.forms

我有一个有很多静态方法的类,我将它用作一种样式表.

你给它的一个方法一个Label,它设置了一堆标签属性,如颜色,字体系列和字体大小.

我想创建一个页面,您可以在其中查看所有不同的Label样式,因此我想枚举这些静态方法,以便将每个方法应用于标签.

这可能吗?模板对象属性有更好的方法吗?

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;
        }

        ...
  }
  ...
}
Run Code Online (Sandbox Code Playgroud)

byt*_*e77 6

反思是关键词.

typeof(Palette.LabelStyle).GetMethods(BindingFlags.Static)
Run Code Online (Sandbox Code Playgroud)

它还可以用于各种类似的目的.

您可能必须选择适当的绑定标志.在这个例子中BindingFlags.Static是枚举静态方法.你需要另一个非公开的绑定标志.那将是:

BindingFlags.Static | BindingFlags.NonPublic
Run Code Online (Sandbox Code Playgroud)

例如.