zoukankan      html  css  js  c++  java
  • C#常用特性

    1、服务器控件ID
    .NET服务器控件有三个ID,即:ID,ClientID和UniqueID
    ID为服务器控件的服务器标示,在服务器代码中通过ID来唯一区分服务器控件;
    ClientID是服务器控件在转化成HTML元素之后在客户端的ID,为了防止出现命名冲突,ASP.NET 为页上的各个服务器控件自动生成一个唯一的 ClientID 值。ClientID 值是通过连接控件的 ID 值和它的父控件的 UniqueID 值生成的。生成的 ID 的各个部分以下划线字符 (_) 分隔;
    UniqueID是服务器控件的唯一的、以分层形式限定的标识符,它也是服务器控件转化成HTML元素之后在客户端的name标识;
    
    2.HttpContext.Current
    var context = HttpContext.Current;
    
    3.自动属性
    1)自动属性必须包含get set,如果是只读的就添加private关键字 
    2)Attributes 不允许使用自动属性,这里还是推荐使用常规的属性书写方式
    public class Point
    {
        public int X { get; set; }//自动化属性
        public int Y { get; private set; }//带修饰符的自动化属性
        public int T { get; set; }
    }
    
    4.对像和集合初始化器
    class Test_45
    {
        Point p = new Point { X = 23, T =2};//可以通这种方式来实例化一个对像
        //初始化一个集合
        List<Point> PoList = new List<Point> 
        {
        new Point {X =2,T =3},
        new Point {X =4,T=2},
        new Point {X=23,T =90}
        };
    }
    
    5.扩展方法
    扩展方法是一个静态方法,可以关联在一种类型上,所以这个方法可以在他处调用。这样仿佛给某一个类型添加了方法!而实际上我们并没有改变原有的代码。
    //对Point 扩展了一个方法GetZeroPoint
    public static  Point GetZeroPoint(this Point p)
    {
        return new Point { X = 0, T = 0 };
    }
    
    6.Lambda表达式
     //Lambda表达式是一种简化的匿名方法,有如下几种表现形式
    //(int x)=>{return x+1;}
    //(int x)=>x+1;
    //x=>x+1;
    //(x,y)=>x+y;
    public void TestLambda()
    {
        List<Point> pList = new List<Point> 
        {
            new Point {X =2,T =3},
            new Point {X =4,T=1}
        };
        List<Point> ppList = new List<Point>();
        ppList = pList.FindAll(p => p.X > 2 && p.T < 3);
    }
    
    7.范型
    
    8.匿名方法
    string[] words = sentence.Split(' ');
    string reversed = words.Aggregate((workingSentence, next) => next + " " + workingSentence);
    bool b = words.All(w => w.Length > 5);
    bool b2 = words.Any(w => w.Length > 10);
    
    9.隐式类型变量
    var num = 5;
    var a = new[] { 2, 5, 6, 7 };
    var anon = new { Name = "Terry", Age = 34 };
    var list = new List<int>();
    
    10.迭代器
    string[] m_Days = { "Sun", "Mon", "Tue", "Wed", "Thr", "Fri", "Sat" };
    public System.Collections.IEnumerator GetEnumerator()
    {
        for (int i = 0; i < m_Days.Length; i++)
        {
            yield return m_Days[i];
        }
    }
    
    11.LINQ检索表达式
    int[] items = new int[] { 1, 2, 3, 4, 5 };
    IEnumerable<int> ints = from item in items
                            where item > 2.5
                            select item;
    foreach (var p in ints)
    {
        Console.WriteLine(p);
    } 
    
    12.匿名类型
    匿名类型把一系列的只读属性封装在一个对象里面,而并没有指定这个对象的类型编译器会给这个对象类型一个名字,但是这个名字在代码级别是不可用的。
    var card = from c3 in cards
                where c3.ID > 13
                //select c3;
                select new {MyID= c3.ID,MyPassword= c3.Password };
    foreach (var item in card )
    {
        Console.WriteLine(item.MyID.ToString()+"---"+item.MyPassword );
    }
    
  • 相关阅读:
    二分图 洛谷P2055 [ZJOI2009]假期的宿舍
    并查集 洛谷P1640 [SCOI2010]连续攻击游戏
    贪心 洛谷P2870 Best Cow Line, Gold
    贪心 NOIP2013 积木大赛
    快速幂 NOIP2013 转圈游戏
    倍增LCA NOIP2013 货车运输
    树形DP 洛谷P2014 选课
    KMP UVA1328 Period
    动态规划入门 BZOJ 1270 雷涛的小猫
    KMP POJ 2752Seek the Name, Seek the Fame
  • 原文地址:https://www.cnblogs.com/sntetwt/p/3433371.html
Copyright © 2011-2022 走看看