加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

在C#中向下倾斜

发布时间:2020-12-15 18:16:39 所属栏目:百科 来源:网络整理
导读:我正面临一个我不知道如何解决的问题,希望社区可以提供帮助. 我正在编写一个管理“Lead”对象的应用程序. (这些是销售线索.)我的程序的一部分将从文本文件中导入潜在客户.现在,文本文件包含许多潜在的潜在客户,其中一些我想要导入,其中一些我不会. 为了便于
我正面临一个我不知道如何解决的问题,希望社区可以提供帮助.

我正在编写一个管理“Lead”对象的应用程序. (这些是销售线索.)我的程序的一部分将从文本文件中导入潜在客户.现在,文本文件包含许多潜在的潜在客户,其中一些我想要导入,其中一些我不会.

为了便于编程(和使用),我正在将文本文件解析为List< Lead>对象,并使用DataGridView通过设置DataGridView的DataSource属性来显示潜在客户.

我想要做的是在网格中添加一个名为“导入”的列,其中包含一个复选框,用户可以选中该复选框以指示是否应导入每个导联.

我的第一个想法是从Lead派生一个班级:

public Class LeadWithImportCheckbox : Lead
{
   bool bImport = false;

public bool Import
{
得到{return bImport;}
设置{bImport = value;}
}
}

但是,解析引擎返回Lead对象列表.我无法将潜在客户转向LeadWithImportCheckbox.这失败了:

LeadWithImportCheckbox newLead = (LeadWithImportCheckbox)LeadFromParsingEngine;

这是一个无效的演员表.

我看到的另一个选项是为LeadWithImportCheckbox创建一个构造函数:

public LeadWithImportCheckbox(Lead newlead)
{
  base.Property1 = newlead.Property1;
  base.Property2 = newlead.Property2;
  ....
  base.Property_n = newlead.Property_n;
}

出于两个原因,这是有问题的.一,Lead对象有几十个属性,编写这个构造函数是PITA.

但更糟糕的是,如果我更改了Lead的底层结构,我需要记住返回并更改LeadWithImportCheckbox的构造函数.这对我的代码维护是一个危险.

有没有更好的方法来实现我的目标?

解决方法

或者,为了避免PITA方面,使用反射……(试试这个…)

编辑:使用属性,而不是我最初写的字段…

public class NewLead : Lead
{
    public bool Insert;
    public NewLead(Lead lead,bool insert)
    {
        Insert = insert;
        foreach (PropertyInfo pi in typeof(Lead).GetProperties())
            GetType().GetProperty(pi.Name).SetValue
               (this,pi.GetValue(lead,null),null);
    }
}

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读