zoukankan      html  css  js  c++  java
  • asp.net mvc基础准备

    1.扩展方法,对别人的类加以方法扩展

       当定义一个扩展方法时,第一个限制就是必须把方法定义在静态类中,因此每一个扩展方法也必须声明为静态的。第二个限制是扩展方法要用this关键字对第一个参数进行修饰,这个参数也就是我们希望进行扩展的类型。

    2. 匿名方法与Lamda表达式

         Func<int, string, string> MyFunc = (s, b) => { return b + s.ToString(); };

         这个含义比较简单,前面2个参数代表输入参数(int,string),也就是s和b,后面{}代表方法体,一句话的就可以省掉{}

    3. ?与??

         ?表示可空类型,例如 bool ? IsUse; 判断有值否就可用if(IsUse!=null)或IsUse.HasValue

         ??表示两个对象赋值时,或遇到一个null,则给予一个默认值

         例: double ? balance = null;

                double currentBalance;

                currentBalance = balance ?? 0.0;

    4.Linq表达式

     (1)

    书写LINQ查询时又两种语法可供选择:方法语法(Fluent Syntax)和查询表达式(Query Expression)。

    编译器会在程序编译时把查询表达式转换为方法语法,即对扩展方法的调用。这意味着,我们用查询表达式写出来的LINQ查询都有等价的方法语法。

              string[] names = { "Tom", "Dick", "Harry", "Mary", "Jay" };
                IEnumerable<string> query =
                    from n in names
                    where n.Contains("a")     // Filter elements
                    orderby n.Length        // Sort elements,                

                    select n.ToUpper();        // Translate each element

     

              IEnumerable<string> query2 = names
                    .Where(n => n.Contains("a"))    //n直接来自names array
                    .OrderBy(n => n.Length)         //n来自filter之后的subsequent
                    .Select(n => n.ToUpper()); 

     

    (2)

    Func<TSource,TResult>匹配TSource => TResult的Lambda表达式,接受一个输入参数TSource,返回TResult。因为TSource和TResult是不同的类型,所以我们的Lambda表达式甚至可以改变输入element的数据类型。下面的示例就把string类型元素转换为int类型元素:

        static void TestSelectOperator(){
                string[] names = { "Tom", "Dick", "Harry", "Mary", "Jay" };
                // 编译器将会从Lambda表达式 n => n.Length推断出TResult为int类型
                IEnumerable<int> query = names.Select(n => n.Length);

                foreach (int length in query)
                    Console.Write(length + "|");    //  3|4|5|4|3
            }

    5.Razor相关语法

        (1)MvcHtmlString ---Razor中只能使用MvcHtmlString,create()方法创建 HTML 编码的字符串,实际是个解码HtmlDecode

        (2)TagBuilder---用来创建HTML标签,MergeAttribute用来创建属性,InnerHtml,AddCssClass

        (3)HtmlHelper用来在页面上显示html元素,注意,它是基类,@Html是子类,扩展方法是用在基类上(或者HtmlHelper用在代码上,Html用在Razor语法上)

  • 相关阅读:
    ZOJ 3765 Lights (zju March I)伸展树Splay
    UVA 11922 伸展树Splay 第一题
    UVALive 4794 Sharing Chocolate DP
    ZOJ 3757 Alice and Bod 模拟
    UVALive 3983 捡垃圾的机器人 DP
    UVA 10891 SUM游戏 DP
    poj 1328 Radar Installatio【贪心】
    poj 3264 Balanced Lineup【RMQ-ST查询区间最大最小值之差 +模板应用】
    【转】RMQ-ST算法详解
    poj 3083 Children of the Candy Corn 【条件约束dfs搜索 + bfs搜索】【复习搜索题目一定要看这道题目】
  • 原文地址:https://www.cnblogs.com/bearhb/p/2276510.html
Copyright © 2011-2022 走看看