如何检查C#中的类型是否为字符串?

时间:2012-03-01 13:46:34

标签: c#

我想查看某个类型的所有属性,并想检查属性类型是否不是字符串,我该怎么办?

我的课程是:

 public class MarkerInfo
    {
        public string Name { get; set; }
        public byte[] Color { get; set; }
        public TypeId Type { get; set; }
        public bool IsGUIVisible { get; set; }

        public MarkerInfo()
        {
            Color = new byte[4]; // A, R, G, B
            IsGUIVisible = true;
        }
    }

我用来检查类型的代码是:

 foreach (var property in typeof(MarkerInfo).GetProperties())
            {               

                if (property.PropertyType is typeof(string))              
            }

但是这段代码不起作用,不知道怎么做?

3 个答案:

答案 0 :(得分:26)

if (property.PropertyType == typeof(string))

答案 1 :(得分:4)

请改用以下内容:

    foreach (var property in typeof(MarkerInfo).GetProperties())
    {               
        if (property.PropertyType == typeof(string))              
    }

答案 2 :(得分:2)

使用==而不是isis String(保留typeof)