【问题标题】:Reducing the Number of list properties in member class减少成员类中列表属性的数量
【发布时间】:2014-09-10 23:49:16
【问题描述】:

我正在为特定的内部文件开发模板引擎。我目前有这个代码:

 public class properties
    {
        [DefaultValue("")]
        public string CompanyName { get; set;}
        [DefaultValue("")]
        public string Address { get; set; }
        [DefaultValue("")]
        public string AddressExtra { get; set; }
        [DefaultValue("")]
        public string InvoiceNumber { get; set; }
        [DefaultValue("")]
        public string InvoiceDate { get; set; }
        [DefaultValue("")]
        public string OrderNumber { get; set; }
        [DefaultValue("")]
        public string Rep { get; set; }
        [DefaultValue("")]
        public string Status { get; set; }
        [DefaultValue("")]
        public string TaxRate { get; set; }
        [DefaultValue("")]
        public string Quantity1 { get; set; }
        public string Quantity2 { get; set; }
        ...
    }

为了配合这个模板: 作为 C# 开发区的“新手”。我想知道是否可以重新定义成员类中重复属性加载的实现逻辑。即:

Quantity1、Quantity2、Quantity3、Quantity4 ... 一直到 14,与所有其他重复区域相同。

不知道如何重新考虑这个逻辑,我转向 Stackoverflow 寻求可能的想法(不是外部库。我希望这是一个学习曲线和自包含)。

【问题讨论】:

  • 你熟悉Arrays和collections吗?
  • @alexw 数组,是的。收藏,不多。将阅读提供的链接

标签: c# templating


【解决方案1】:

您应该有一个“LineItem”类,这似乎很清楚,例如:

public class LineItem
{
   public int Quantity {get; set;}
   public string Product {get; set;}
   public double UnitPrice {get; set;}
   public double TotalAmount {get; set;}
}

您的“订单”类(您称其为“属性”,不是一个好名字的类)然后会保存这些的集合。

即。

public class Order
{
   public string CompanyName {get; set;}
   ...
   public List<LineItem> Items {get; set;}
}

【讨论】:

  • 这不是目前正在发生的事情吗(尽管名字可能很糟糕)?一个自包含的类来容纳模板上的预设值?
  • @DarylGill 好吧,我的没有编号变量。您的基本封装并不算太远,您只需要将订单项与订单本身分开封装即可。
  • 我正在慢慢遵循代码背后的逻辑。我仍然对编号变量一无所知。如何实现单独的数量、产品、价格和单价。但是要在正确的行上替换
  • @DarylGill 谢谢,你真好。
猜你喜欢
  • 2016-10-12
  • 1970-01-01
  • 1970-01-01
  • 2011-02-28
  • 1970-01-01
  • 1970-01-01
  • 2019-06-18
  • 2020-11-18
  • 2013-04-23
相关资源
最近更新 更多