1、ASP.NET MVC入门到精通——新语法

C#特性 扩展方法

主要用于泛型集合和泛型类

扩展方法的本质:编译时,直接将 str.WriteSelf(2015) 替换成 StringUtil.WriteSelf(str,2015);
想为一个类型添加一些成员 , 怎么办?
扩展方法:

 class Program
    {
        static void Main(string[] args)
        {
            string str = "2015-01-01";
            //调用静态方法
            DateTime resualt = str.ToTry(DateTime.Now);
            Console.Write(resualt);
            Console.Write(resualt.GetType());
            Console.ReadKey();
        }
    }
    /// <summary>
    /// 扩展方法静态类
    /// </summary>
    public static class ConvertToType
    {
        /// <summary>
        /// 扩展方法 关键字 this
        /// </summary>
        /// <param name="value">被转的类型</param>
        /// <returns>默认返回0</returns>
        public static int ToTry(this string value)
        {
            int temp = 0;
            if (!string.IsNullOrEmpty(value))
            {
                try
                {
                    int.TryParse(value, out temp);
                }
                catch
                {
                    temp = 0;
                }
            }
            return temp;
        }

        /// <summary>
        ///数据类型转换
        /// </summary>
        /// <typeparam name="T"></typeparam>
        /// <param name="value"></param>
        /// <param name="defaultValue"></param>
        /// <returns></returns>
        public static T ToTry<T>(this object value, T defaultValue)
        {
            //1 确定T 的类型 2 Object 的类型
            //在泛型类和泛型方法中产生的一个问题是,在预先未知以下情况时,如何将默认值分配给参数化类型 T:
            //default 关键字 若T为引用类型则返回null,值类型返回0,null 返回 System.Nullable(Of T)
            object startValue = default(T);

            if (value != null)
            {
                //typeof和getType()区别
                //typeof 用于类型
                //gettype 用于 类型实例化后
                // Test t=new Test() t.gettype() 和 typeof(T)
                try
                {
                    Type convertType = typeof(T);
                    if (convertType == typeof(String))
                    {
                        startValue = value.ToString();
                    }
                    if (convertType == typeof(Int32))
                    {
                        startValue = Convert.ToInt32(value);
                    }
                    if (convertType == typeof(DateTime))
                    {
                        startValue = Convert.ToDateTime(value);
                    }
                    return (T)startValue;
                }
                catch
                {
                    return defaultValue;
                }
            }
            else
            {
                return defaultValue;
            }
        }
    }
时间: 2024-08-06 15:17:56

1、ASP.NET MVC入门到精通——新语法的相关文章

26、ASP.NET MVC入门到精通——后台管理区域及分离、Js压缩、css、jquery扩展

本系列目录:ASP.NET MVC4入门到精通系列目录汇总 有好一段时间没更新博文了,最近在忙两件事:1.看书,学习中...2.为公司年会节目做准备,由于许久没有练习双截棍了,难免生疏,所以现在临时抱佛脚.深圳最近的天气反常,许多人感冒了,我也成为其中之一,大家注意身体... 这一篇,我来简单的讲一下接下来项目中会用到的一些杂七杂八的技术. 区域及分离 在15.ASP.NET MVC入门到精通——MVC-路由中,我已经简要说明了区域的分离. 1.右键单击Web项目,“添加”——“区域”,区域名,

22、ASP.NET MVC入门到精通——搭建项目框架

本系列目录:ASP.NET MVC4入门到精通系列目录汇总 前面的章节,说了ASP.NET MVC项目中常用的一些技术和知识点,更多的是理论上面的东西,接下来,我将通过一个简单的OA项目来应用我们之前涉及到的一些技术,为了兼顾初学者,所以我尽量把操作步骤说得足够详细.(本来想用VS2015来演示MVC5开发的,无奈家里的笔记本是11年2月份的老爷机了,一直未曾舍得换,因为配置的缘故,笔记本不堪负重,难以安装最新版本的开发工具,只装了VS2012,当然,还有一个原因就是现在公司也是使用VS2012

ASP.NET MVC入门到精通——14.MVC请求管道

本系列目录:ASP.NET MVC4入门到精通系列目录汇总 ASP.NET MVC的请求管道和ASP.NET请求管道基本上一模一样,如果你对ASP.NET请求管道十分熟悉的话,你只要关注一下不同点.看懂下面两张图,你就基本上明了了,不明天的地方,用reflector工具查看MVC的源码,没其它的..NET框架的源码里面几乎涉猎了各种设计模式.这一节的内容,我也不知道怎么说,都在图里面了,看图比直接用文字说明要明了得多,比较这些东西还是比较抽象的,如果你时间充裕,建议看下MVC的源码.怎么看?就找

3、ASP.NET MVC入门到精通——Entity Framework增删改查

小分享:我有几张阿里云优惠券,用券购买或者升级阿里云相应产品最多可以优惠五折!领券地址:https://promotion.aliyun.com/ntms/act/ambassador/sharetouser.html?userCode=ohmepe03 这里我接上讲Entity Framework入门.从网上下载Northwind数据库,新建一个控制台程序,然后重新添加一个ado.net实体数据模型. EF中操作数据库的"网关"(操作上下文) DBContext封装 .NET Fra

ASP.NET MVC4入门到精通系列目录汇总(转)

序言 最近公司在招.NET程序员,我发现好多来公司面试的.NET程序员居然都没有 ASP.NET MVC项目经验,其中包括一些工作4.5年了,甚至8年10年的,许多人给我的感觉是:工作了4.5年,Web开发依旧停留在拖控件的水平,最最基本的算 法,递归.排序(我不要求快速排序,你会冒泡就行了)都不会,数据库方面,很基础的SQL都写不出,分组过滤也不会,更别提性能了,问下数据优化经验,除 了回答加索引基本就没下文了.当然,一些过去N年都是做ASP.NET WebForm开发的,不熟悉MVC,那也没

ASP.NET MVC4入门到精通系列目录汇总

http://www.cnblogs.com/jiekzou/p/4772273.html ************************ 序言 最近公司在招.NET程序员,我发现好多来公司面试的.NET程序员居然都没有 ASP.NET MVC项目经验,其中包括一些工作4.5年了,甚至8年10年的,许多人给我的感觉是:工作了4.5年,Web开发依旧停留在拖控件的水平,最最基本的算 法,递归.排序(我不要求快速排序,你会冒泡就行了)都不会,数据库方面,很基础的SQL都写不出,分组过滤也不会,更别

《ASP.NET4从入门到精通》学习笔记5

这个部分吗,可以说是这本书最最没有价值的部分,他自己的作者感觉都没有弄明白,就换乱介绍,而且介绍的不知所云!该部分,只是罗列的目的,建议大家不要细读这个部分的内容,浪费时间而且伤脑筋!(感慨:总是感觉国内的书,看着500多页,有含金量的太少了,大部分页面都是抽数的.可怜我的买书钱.) 第五部分,高级功能介绍 这部分的主要目的是介绍ASP.NET引入的新的技术方案,包括了AJAX,MVC,动态数据,XBAP,silverlight,WPF等等. 第20章动态数据 第21章 WPF 第22章 MVC

&lt;ASP.NET4 从入门到精通&gt;学习笔记1

很久没有写东西了,今日有时间,开始整理一下关于ASP.NET 4的学习笔记,提醒自己,也欢迎评论. 概述一共分为6个大的部分,后续文章,将根据每个部分进行整理,本读书笔记只是整理关键点,对于啰嗦的内容一概省略. 第一部分,基础知识部分 我认为这个部分是这部书作为入门部分讲解比较深入和清楚地部分,对于ASP.NET,他的本质是web开发,不管是web form还是MVC,那么在进行web开发之前,首先就需要了解,为什么会出现ASP.NET,其实,在早期的时候,应该说是HTML和HTTP的天下,在计

[转]ASP.NET MVC 入门8、ModelState与数据验证

ViewData有一个ModelState的属性,这是一个类型为ModelStateDictionary的ModelState类型的字典集合.在进行数据验证的时候这个属性是比较有用的.在使用Html.ValidationMessage()的时候,就是从ViewData.ModelState中检测是否有指定的KEY,如果存在,就提示错误信息.例如在前一篇文章ASP.NET MVC 入门7.Hellper与数据的提交与绑定中使用到的UpdateModel方法: 我们在View中使用Html.Vali