c# 之 New新知

  本人从事.NET工作已经一段时间,毕业之前一直想着做C++的,后来因为各种原因(跟学校导师相关),走向了.NET之路,从而时不时补一下.net的基础知识,因为自己的.NET知识还不是很扎实。近期每天早上上班前都看一篇AnyTao老师的《你必须知道的.NET》系列博文(ps.非常欣赏AnyTao老师的说识风格,讲得非常细腻),故温故而知新,记录下相关知识。

  以前认识学C++,对New的认识是,凡是用了New,都是创建一个对象,对于值类型的变量是不可以用new的,只有引用类型的类型才可以用new创建一个对象,是因为C++本来就不是一个完全面向对象的语言。对于C++,用了New来创建一个对象,就意味着在堆上开了一个内存空间,并且要自己手动去释放,否则会导致内存溢出。

  对于在.NET里面的C#,New却并非如此,而且会演变出更多的功能——约束。在C#里面,New一个变量,并且就意味着在托管堆上面开辟内存,值类型也可以使用New,例如:int a = new int(),对于这样new一个变量出来,只是在堆栈(栈,其实一直想不明白为什么要叫“堆栈”而不叫栈,叫“栈”岂不是能更加明确的和“堆”分开来?!)上面初始化了一个int变量并且默认赋值为0而已。

  以下为验证小程序

namespace ForNew
{
    class Program
    {
        static void Main(string[] args)
        {
            int i = new int();
            Console.WriteLine(i);
            Console.Read();
        }
    }
}

输出为:0

另外,New还可以用于泛型类里面,用于约束某个泛型必须显式带一个不带参数的构造函数,例如:

  

    class Test<T> where T : new()
    {
        public string str { get; set; }
    }

则使用该模板类的时候,T类型必须有一个不带参数的构造函数,否则编译出错。

  这次写得有点匆促,明天再补充相关内容,有不对的地方,欢迎指出探讨。再次感谢AnyTao老师的教导,附上他《你必须知道的.NET》系列博文地址:http://www.cnblogs.com/series/2/

时间: 2024-08-07 04:21:54

c# 之 New新知的相关文章

新知食APP架构分析--北京食物科技有限公司旗下产品

俗话说不打无准备之仗,这次真是有点懵逼了,建议大家去面试的时候,尤其是去小型互联网公司的时候,如果你想比其他人有竞争力,那么你要研究一下当前他的公司正在开发产品,他们的业务类型是什么样的,比如他们公司正在开发xxxApp,你可以花费两天时间,做一个xxxApp的demo,等去面试的时候,你就可以有底气的说,我研究了一下贵公司的业务,对贵公司的产品很感兴趣,顺便做了个demo,然后你把打包好的app在你手机上运行一下,给技术看一下,基本上这份offer就属于你的了,一定要做事前要谋一下,古话说万事

360新知编辑

360新知,这是我上大学才知道的一个东西,类似于百度经验,是用来专门解答一个或一类问题的.我们编辑词条,然后由后台工作人员审核,通过者则可被人们所利用,未通过者可继续修改,完善,直至通过.我编辑的第一个词条是"win7系统截图小工具简单而便捷",相信很少人会用系统截图工具,毕竟要截图,找QQ截图就ok了,功能还更强大,何必呢?但是为了完成词条,我把系统截图工具拿出来捣鼓了一会儿,再到网上查看更多用法,最后便将自己的使用方法分步解说,配上各个步骤的截图(有的图可以从网上找,只要没水印,清

新知道的知识

这几个是新知道的,先记录一下,虽然有的还不知道具体是什么. CDN CDN全称Content Delivery Network,即内容分发网络,本系统所有静态资源全部通过 CDN加速来提高访问速度. 系统静态资源包括:html页面.js文件.css文件.image图 片.pdf和ppt及doc教学文档.video视频等. 负载均衡 系统的CDN层.UI层.服务层及数据层均设置了负载均衡服务,上图仅在UI层前边标注 了负载均衡. 每一层的负载均衡会根据系统的需求来确定负载均衡器的类型,系统支持 4

汇课新知:创业选择什么项目,决定了你未来进程和结果

创业选择什么项目,决定了你未来进程和结果. 古人也说,"男怕选错行,女怕嫁错男."这句话很深刻.360行,行行都有牛逼的人物,但绝大部分人在某一行业进混日子的.人跟人智商相差不多,但因为思维差大多,导致成就相差真的很大. 中国最富有的人是温州人,也是最有创业精神的人.他们从小的被灌输的理念,就是白天干老板,晚上睡地板,他们的兴趣就是创业,就是赚钱,这是从小的养成的,我去过温州好多次,有几位朋友是温州人,他们每个人都没有安分打工这一说,就算是普通的上班族,在外头也一定有份买卖或兼好几份职

&lt;转&gt;请戒掉成功学和正能量,那是麻痹人的毒药 | 新知

非常不幸的是,这将是一场非常糟糕的演说.我不想骗你们,你们从我这里几乎什么也学不到.你们在离开的时候肯定会感到失望,你们的生活并不会得到改善. 更糟糕的是,你还会意识到生活的本质毫无意义,你的一切努力到头来都只是徒劳,死亡早晚会将你与你的心爱之人击倒.你的一切成就最终都要归于尘土.这些都是人类生活的基本事实,但是这些事实经常遭到否认. 今天我们就要将黑暗摆在桌面上好好审视一番.我要为“杯中半空”的心态唱一曲赞歌,向大家揭示将生活视为无奈苦旅的智慧与美丽之处.我们生活在一个袭扰不断的时代,许多人应

斩获新知——记一次reverse的实现过程

最近学习C++,在实现reverse函数的时候,从一个小问题开始,在对这个问题的旁敲侧击当中带起了更多疑惑,顺藤摸瓜之后,尽管没有将诸多问题完美解答,但整个过程下来却也觉得似有所获.最初的问题起自于使用C++实现reverse模板函数时碰到的swap问题,随之在翻查STL中reverse源码的实现过程当中产生了其他疑问,如__ITERATOR_CATEGORY,__VALUE_TYPE,__STL_REQUIRES宏的作用,do...while(0)技巧.之后在查找一些资料之后总算对这些问题都有

汇课新知-想要在网上打工赚钱?必须要知道的18条网赚思维

超过90%的在线收入和兼职工作都在徘徊和困惑.如果你在做任何事情之前理解了思考的逻辑,你将能够以有序的方式前进. 在互联网上分享18种赚钱方式: 1.有些项目我们绝对不碰,不喜欢那种资金托盘.我们认识我们身边的许多兄弟,因为他们从事基金托盘业务.最后,它们是空的.赚两亿美元怎么样?他们失去了生命,什么也不做.所以我们一直没有接触过灰色和黑色的项目.这不是我们的胆量,而是我们想稳妥.安全地做事.毕竟,许多兄弟都有家庭.妻子和孩子,稳定地赚钱就足够了. 2.每天锻炼可以改善你的健康.每天读书会使你受

今日新知(关于递归中变量的声明)

在递归函数中用到的变量,要将它声明为局部变量,切记不能声明为全局变量. 如下面归并排序中的变量k. 1 #include<iostream> 2 3 using namespace std; 4 5 const int N = 100010; 6 7 int a[N],b[N]; 8 9 int n ; 10 long long res = 0 ; 11 12 void merge_sort(int a[],int l,int r){ 13 14 if(l >= r) return ;

经典创意slogan大全

一句好的广告语,能强烈的激发人的感情,产生心理认同感.对于广告人来说,无论走到哪里,最敏感的就是广告语.一句广告语,可能只有短短几个字或一两句话,却是一个品牌的精华所在.能不能第一时间吸引受众眼球,抓顾客的心,是无数广告人夜不能寐思考的问题.一句简洁.有力的Slogan,汇聚了品牌的理念.企业的价值观.发展愿景,甚至企业的员工.领导习惯,还有当下的市场环境等等方面.例如苹果的:Think different,看似很简单,却直指人心.今天,先知中国命名网小编给大家整理了经典创意slogan大全,供