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 );
    }
    
  • 相关阅读:
    JavaScript对原始数据类型的拆装箱操作
    Javascript继承(原始写法,非es6 class)
    动态作用域与词法作用域
    自行车的保养
    探索JS引擎工作原理 (转)
    C语言提高 (7) 第七天 回调函数 预处理函数DEBUG 动态链接库
    C语言提高 (6) 第六天 文件(续) 链表的操作
    C语言提高 (5) 第五天 结构体,结构体对齐 文件
    C语言提高 (4) 第四天 数组与数组作为参数时的数组指针
    C语言提高 (3) 第三天 二级指针的三种模型 栈上指针数组、栈上二维数组、堆上开辟空间
  • 原文地址:https://www.cnblogs.com/sntetwt/p/3433371.html
Copyright © 2011-2022 走看看