C#中new的用法有三种:

(1)new是运算符,用于创建对象和调用构造函数。如Class1=new Class1();也可以为值类型调用默认的构造函数如int a=new int();此时a=0.
(2)new是修饰符,用于隐藏基类成员的继承成员。override不能隐藏积累成员的继承成员。如:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace A
{
class Program
{
abstract public class Test
{
public virtual void Prinf()
{
Console.WriteLine("Abstract Printf...");
}
}
public class Class1 : Test
{
public override void Prinf()
{
Console.WriteLine("Class One Override Printf...");
}
}
public class Class2 : Test
{
public new void Prinf()
{
Console.WriteLine("Class Two New Printf...");
}
}
static void Main(string[] args)
{
Class1 cls1 = new Class1();
Class2 cls2 = new Class2();
cls1.Prinf();
cls2.Prinf();
((Test)cls1).Prinf();
((Test)cls2).Prinf();
Console.ReadLine();
}
}
}
运行结果表明:new修饰符隐藏了重写方法,通过将派生对象转为为基类对象,调用了基类的方法。而override则是完全重写了方法,即便是转为基类对象也调用的也是派生类的重写方法。
即:new隐藏的基类方法,override重写基类方法。
(3)new是约束。用在泛型中添加类型的约束。
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace A
{
class Test<T>
where T : new()//定义类型T的约束,表示T类型必须有不带参数的构造函数
{
public T GetItem()
{
return new T();//如果不添加new()约束,编译错误:变量类型“T”没有 new() 约束,因此无法创建该类型的实例
//想一下,T类型不知道,编译器不知道分配多大的空间,所以会通过反射技术实现
}
}
class TClass
{
private int a;
public TClass() //如果不添加无参构造函数,编译错误:TClass必须是具有公共的无参数构造函数的非抽象类型,才能用作泛型类型或方法“A.Test<T>”中的参数“T”
{
}
public TClass(int a)
{
this.a = a;
}
}
class Program
{
static void Main(string[] args)
{
Test<TClass> test = new Test<TClass>();
Console.ReadLine();
}
}
}
注释:参考http://msdn.microsoft.com/zh-cn/library/sd2w2ew5.aspx
# C#
# new
# C#中new的几种用法详解
# 详解C#用new和override来实现抽象类的重写区别
# 深入理解C#中new、override、virtual关键字的区别
# C#基础知识之new关键字介绍
# C#中Override关键字和New关键字的用法详解
# C#中new和override的区别个人总结
# .net(c#)中的new关键字详细介绍
# 基于C# 中可以new一个接口?的问题分析
# C# new和override的区别分析
# 重写
# 修饰符
# 则是
# 也可
# 写了
# 多大
# 不带
# 用在
# 有三种
# 运算符
# 派生类
# 即便是
# Program
# abstract
# Linq
# namespace
# Text
# Prinf
# Console
# WriteLine
相关文章:
如何通过wdcp面板快速创建网站?
建站主机选择指南:服务器配置与SEO优化实战技巧
宠物网站制作html代码,有没有专门介绍宠物如何养的网站啊?
建站之星体验版:智能建站系统+响应式设计,多端适配快速建站
如何批量查询域名的建站时间记录?
如何通过智能用户系统一键生成高效建站方案?
如何在Golang中处理模块冲突_解决依赖版本不兼容问题
如何用狗爹虚拟主机快速搭建网站?
如何选择香港主机高效搭建外贸独立站?
高端网站建设与定制开发一站式解决方案 中企动力
网站制作价目表怎么做,珍爱网婚介费用多少?
中山网站制作网页,中山新生登记系统登记流程?
阿里云网站搭建费用解析:服务器价格与建站成本优化指南
建站中国官网:模板定制+SEO优化+建站流程一站式指南
如何用景安虚拟主机手机版绑定域名建站?
网站制作多少钱一个,建一个论坛网站大约需要多少钱?
微网站制作教程,不会写代码,不会编程,怎么样建自己的网站?
建站之星安装步骤有哪些常见问题?
建站OpenVZ教程与优化策略:配置指南与性能提升
想学网站制作怎么学,建立一个网站要花费多少?
建站之星后台搭建步骤解析:模板选择与产品管理实操指南
建站之星下载版如何获取与安装?
西安大型网站制作公司,西安招聘网站最好的是哪个?
成都网站制作报价公司,成都工业用气开户费用?
网站规划与制作是什么,电子商务网站系统规划的内容及步骤是什么?
如何用免费手机建站系统零基础打造专业网站?
如何获取上海专业网站定制建站电话?
如何获取免费开源的自助建站系统源码?
*服务器网站为何频现安全漏洞?
建站与域名管理如何高效结合?
香港服务器网站测试全流程:性能评估、SEO加载与移动适配优化
详解免费开源的DotNet二维码操作组件ThoughtWorks.QRCode(.NET组件介绍之四)
专业的网站制作设计是什么,如何制作一个企业网站,建设网站的基本步骤有哪些?
韩国代理服务器如何选?解析IP设置技巧与跨境访问优化指南
学校为何禁止电信移动建设网站?
购物网站制作公司有哪些,哪个购物网站比较好?
如何用y主机助手快速搭建网站?
南阳网站制作公司推荐,小学电子版试卷去哪里找资源好?
小说建站VPS选用指南:性能对比、配置优化与建站方案解析
如何选择高效可靠的多用户建站源码资源?
微信小程序 五星评分(包括半颗星评分)实例代码
如何在景安服务器上快速搭建个人网站?
赚钱网站制作软件,建一个网站怎样才能赚钱?是如何盈利的?
小建面朝正北,A点实际方位是否存在偏差?
小米网站链接制作教程,请问miui新增网页链接调用服务有什么用啊?
简单实现Android验证码
建站之星客服服务时间及联系方式如何?
Android使用GridView实现日历的简单功能
如何快速搭建高效服务器建站系统?
北京的网站制作公司有哪些,哪个视频网站最好?
*请认真填写需求信息,我们会在24小时内与您取得联系。