当前位置:  开发笔记 > 编程语言 > 正文

在C#中,如何判断属性是否为静态?(.Net CF 2.0)

如何解决《在C#中,如何判断属性是否为静态?(.NetCF2.0)》经验,为你挑选了4个好方法。

FieldInfo有一个IsStatic成员,但PropertyInfo没有.我想我只是忽略了我需要的东西.

Type type = someObject.GetType();

foreach (PropertyInfo pi in type.GetProperties())
{
   // umm... Not sure how to tell if this property is static
}

Steven Behnk.. 42

要确定属性是否为静态,必须通过调用GetGetMethod或GetSetMethod方法获取get或set访问器的MethodInfo,并检查其IsStatic属性.

http://msdn.microsoft.com/en-us/library/system.reflection.propertyinfo.aspx



1> Steven Behnk..:

要确定属性是否为静态,必须通过调用GetGetMethod或GetSetMethod方法获取get或set访问器的MethodInfo,并检查其IsStatic属性.

http://msdn.microsoft.com/en-us/library/system.reflection.propertyinfo.aspx


`BindingFlags.Public | BindingFlags.Static | BindingFlags.FlattenHierarchy`为我工作.

2> ctacke..:

为什么不用

type.GetProperties(BindingFlags.Static)


BindingFlags.Instance

3> relatively_r..:

作为针对所提出问题的快速简便的实际解决方案,您可以使用以下方法:

propertyInfo.GetAccessors(true)[0].IsStatic;



4> furier..:

更好的解决方案

public static class PropertyInfoExtensions
{
    public static bool IsStatic(this PropertyInfo source, bool nonPublic = false) 
        => source.GetAccessors(nonPublic).Any(x => x.IsStatic);
}

用法:

property.IsStatic()

推荐阅读
拾味湖
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有