• 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 );
    }
    
  • 相关阅读:
    Android SDK manager 无法更新解决方法
    platform_set_drvdata的源码分析
    从一个男人身上看出他的修养和抱负
    更换RAID1硬盘过程记录
    无线路由器连接有线路由器设置
    在ASP.NET下实现数字和字符相混合的验证码 (转载)
    不走寻常路 设计ASP.NET应用程序的七大绝招
    .NET 2005 使用MasterPages实现Web窗体模板
    用Visual C# 实现四则混合运算(转载)
    如何实施好CRM (转载)
  • 原文地址:https://www.cnblogs.com/sntetwt/p/3433371.html
Copyright © 2020-2023  润新知