-2

这是我收到错误的代码:“方法只能在 Type.IsGenericParameter 为真的类型上调用。”

public partial class Form1 : Form
{
    public Form1()
    {
        InitializeComponent();
    }

    private void Form1_Load(object sender, EventArgs e)
    {
        CustomInfo obj = new CustomInfo();
        var stringProperties = obj.GetType().GetProperties()
                      .Where(p => p.PropertyType == typeof(string));

        foreach (var stringProperty in stringProperties)
        {
            string currentValue = (string)stringProperty.GetValue(obj, null);
            stringProperty.SetValue(obj, currentValue.Trim(), null);
        }
    }

}

public class CustomInfo
{
    int UserId { get; set; }
    string UserName { get; set; }
    string Country { get; set; }
    string City { get; set; }
    DateTime DOB { get; set; }
    bool isActiveUser { get; set; }

}

我无法修剪对象中的所有字符串属性。

4

1 回答 1

0

您显示的代码执行foreach循环零次,因为您的属性是非公开的。

如果你解决了这个问题,你会得到一个null引用异常,因为你从属性 getter 中读取了一个字符串null,然后调用Trim().null

您提供的代码似乎没有比这些更多的问题。如果您需要有关其他代码的帮助,请更新您的问题。

于 2013-09-30T19:08:01.083 回答