C#常用特性

摘要:
ClientID值是通过连接控件的ID值和其父控件的UniqueID值生成的。这似乎为某个类型添加了一个方法!事实上,我们没有更改原始代码。
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 );
}

免责声明:文章转载自《C#常用特性》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇devexpress打印gridControliosAPP打包上架xcode中Archive提交成功以后,不提示构建版本问题下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

安装Oracle时选择桌面类和服务器类的区别

桌面类――这种安装方式一般适用于台式机和笔记本。它包含一个最小数据库和最低的配置需求。服务器类――这种安装方式适用于服务器,例如,它会向您提供数据中心和用于支持企业级的应用程序。如果您需要使用高级配置选项,请选择此安装类型。在桌面类中,只有基本选择项。在服务器类,您可以选择标准安装(仅让您作有基本选择)或高级安装。在桌面类或典型安装中,Oracle数据库将...

SQL server 2012 各个版本比较

有关不同版本的 SQL Server 2012 所支持的功能的详细信息。 功能名称 Enterprise 商业智能 Standard Web Express with Advanced Services Express with Tools Express 单个实例使用的最大计算能力(SQL Server 数据库引擎)1 操作系统最大值 限制为...

MySQL配置文件改变了datadir值

从Noinstall Zip Archive中安装MySQL正在从Noinstall软件包安装MySQL的用户可以使用这个说明来手动安装MySQL。从Zip archive 中安装MySQL的 步骤如下: 1 在指定的安装目录下解压软件包。 2 制造选择文件。 3 选择MySQL服务类型。 4 开始MySQL服务。 5 保护默认...

WebSocket详解

WebSocket 出现前 构建网络应用的过程中,我们经常需要与服务器进行持续的通讯以保持双方信息的同步。通常这种持久通讯在不刷新页面的情况下进行,消耗一定的内存资源常驻后台,并且对于用户不可见。在 WebSocket 出现之前,我们有以下解决方案: 传统轮询(Traditional Polling) 当前Web应用中较常见的一种持续通信方式,通常采取 s...

搭建我的世界服务器(史上最详细) java环境配置 ,免费内网穿透,家庭用电脑也欧克

服务器部署 周末想要和好基友联机?你是萌新却想要当腐竹? 什么?!你还不会开服?这里有最简单的开服教程! Tip:本篇所有内容基于人数不多的原版生存服务器 服务器安装java环境 下载java选择你的系统版本(去系统属性里看) :https://www.oracle.com/java/technologies/javase-jdk16-downloads....

nginx+tomcat负载均衡搭建

一、      单独部署tomcat和nginx Nginx版本:nginx-1.13.5 Tomcat版本:apache-tomcat-8.5.8 操作系统:win10 必须先部署一个tomcat服务器。Tomcat服务器部署好后,登录tomcat服务器:localhost:8080 显示如下界面,说明部署成功。关于tomcat的部署就不详细介绍了。  ...