c#为字段设置默认值,以及构造函数初始化List对象。

1、为字段设置默认值

复制代码
/// <summary>
        /// 默认值
        /// </summary>
        private int orgPageSize = 10;
        private int orgPageIndex = 1;
        /// <summary>
        /// 页的大小
        /// </summary>
        public int pageSize
        {
            get { return orgPageSize; }
            set { orgPageSize = value; }
        }
        /// <summary>
        /// 当前页
        /// </summary>
        public int pageIndex
        {
            get { return orgPageIndex; }
            set { orgPageIndex = value; }
        }
复制代码

注意:需要纠正一下的是,在属性上通过Attribute加[DefaultValue()]的方法是无效的。(亲自使用过,根本就不能生效!网上居然还有很多文章说使用这种方式。很无语啊!)

        /// <summary>
        /// 当前页
        /// </summary>
        [DefaultValue(1)]
        public int PageIndex { get; set; }     //无效的

2、创建对象时,利用构造函数初始化List

复制代码
  /// <summary>
    /// 产品管理DTO
    /// </summary>
    public class ProductDTO
    {
        /// <summary>
        /// 
        /// </summary>
        public ProductDTO()
        {
           TestOrgOnline = new List<ProductOnlineDTO>();   //每次new一个ProductDTO,就会实例化List数组,
        }
       
        /// <summary>
        /// 产品上线
        /// </summary>
        public List<ProductOnlineDTO> TestOrgOnline { get; set; }
    }
复制代码

示例代码:

复制代码
  ProductDTO productDto = new ProductDTO();
 ProductOnlineDTO productOnlineDTO = new ProductOnlineDTO
                                {
                                    onlineId = item.Id,
                                    IsOnline = item.IsOnline,
                                    Price = item.VIPPrice,
                                    mark = item.Price,
                                    OnlineDate = item.OnlineDate,
                                    TestOrgId = item.TestOrgId,
                                };
                                var testOrg = context.TestOrg.Where(f => f.Id == item.TestOrgId).FirstOrDefault();
                                productOnlineDTO.TestOrgName = testOrg.OrgName;
                                productDto.TestOrgOnline.Add(productOnlineDTO);   //将对象添加到List数组中,返回到页面。此时如果没有利用构造函数初始化List对象,就会报null引用的错误
复制代码

好记性不如烂笔头!记下来避免以后再犯这样的错误!

原文地址:https://www.cnblogs.com/deepalley/p/12410699.html