Rss Feed

嘉瑜的知性探索

2011年梦想主色调:书、茶、咖啡、红酒、运动、日记、音乐、自制美食、干净明亮的房间

C# 3.0之Object Initializers

2010-07-04 by ,   Category: 码农日记,   Tags:  No Comments  21次浏览  

我一定是活在时间错位的时空中,比如对jQuery,比如现在的Object Initializer。话不多说,从现在开始学起,追新技术可以很累可是也可以很有趣。

2007年C# 3.0发布的几个新特性为:

  • Object Initializers
  • Anonymous Types
  • Automatic Properties
  • Extension Methods
  • Lambda Expressions
  • LINQ
  • Collection Initializers
  • 感觉这些特征都与Javascript的Syntax倒是越来越接近,

    1. Object Initializers
    语句方式与熟悉的jQuery settings极为相象:
    MyObj obj = new MyObj{Property1 = 1; Property2 = “Hello World!”;};
    前天我写了一个简单的类,是为了处理以前02年的项目中那些可读性为负数的代码,

    public class UserSearch
    {
        private const char _delimetor = '|';
        public enum SearchMode
        {
            SimpleSearch,
            AdvancedSearch
        }
    
        public bool IsAdvancedSearch { get; set; }
    
        // Items (leave all properties 'string' type)
        // ETODO: make it generic in Type
        public string ProductFamily { get; set; }
        public string ProductGroup { get; set; }
        public string ProductSubGroup { get; set; }
        public string ProductName { get; set; }
        public string DocNumber { get; set; }
        public string DocTitle { get; set; }
        public string DocType { get; set; }
        public string ReleaseDTOp { get; set; }
        public string ReleaseDTStartString { get; set; }
        public string ReleaseDTEndString { get; set; }
        public string ContentSearch { get; set; }
        public string SearchTypeIdString { get; set; }
        public string SearchText { get; set; }
    
        public UserSearch()
        {
        }
    }

    使用的时候为

    UserSearch userSearch =
        new UserSearch
        {
            ProductFamily = (DListFamilies.SelectedValue == "") ? "0" : DListFamilies.SelectedValue,
            ProductGroup = (DListGroups.SelectedValue == "") ? "0" : DListGroups.SelectedValue,
            ProductSubGroup = (DListSubGroups.SelectedValue == "") ? "0" : DListSubGroups.SelectedValue,
            ProductName = TBoxProduct.Text.Trim(),
            DocNumber = TBoxDocNumber.Text.Trim(),
            DocTitle = TBoxDocTitle.Text.Trim(),
            DocType = (DListDocTypes.SelectedValue == "") ? "0" : DListDocTypes.SelectedValue,
            ReleaseDTOp = CtrlDateOp.GetSelectedDateOp(),
            ReleaseDTStartString = CtrlDateOp.GetDateStart(),
            ReleaseDTEndString = CtrlDateOp.GetDateEnd(),
            ContentSearch = TBoxSearchContent.Text.Trim()
        };

    这在Javascript里称为disordered,即不需要再在构造函数里面重载,用这种方法即可,是不是很方便呢?



    Tags:

    Leave a Comment