黑马程序员——c#中new的用法小结 十一
2013-07-25 09:43
190 查看
------- Windows Phone 7手机开发、.Net培训、期待与您交流! -------
1
new是运算符,用于创建对象和调用构造函数。如Class1=new Class1();也可以为值类型调用默认的构造函数或构造方法(结构体中也可以有构造方法)如int a=new int();此时a=0.
2
new是修饰符,用于隐藏基类成员的继承成员。override不能隐藏基类成员的继承成员。(也就是说父类和子类的成员重名时,加个new表示子类中的是新定义的,当然你不加也可以)
new和override的区别
3 new是约束。用在泛型中添加类型的约束。
------- Windows Phone 7手机开发、.Net培训、期待与您交流! -------
1
new是运算符,用于创建对象和调用构造函数。如Class1=new Class1();也可以为值类型调用默认的构造函数或构造方法(结构体中也可以有构造方法)如int a=new int();此时a=0.
2
new是修饰符,用于隐藏基类成员的继承成员。override不能隐藏基类成员的继承成员。(也就是说父类和子类的成员重名时,加个new表示子类中的是新定义的,当然你不加也可以)
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("父类虚方法..."); } } public class Class1 : Test { public override void Prinf() { Console.WriteLine("重写父类虚方法的子类..."); } } public class Class2 : Test { public new void Prinf() { Console.WriteLine("用new关键字声明和父类同名成员的子类..."); } } 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关键字声明和父类同名成员的子类...
重写父类虚方法的子类...
父类虚方法...
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(); } } }
------- Windows Phone 7手机开发、.Net培训、期待与您交流! -------
相关文章推荐
- 黑马程序员之C#学习笔记: new关键字的三种用法
- C#中New关键字的三种用法
- C#中comboBox控件的一些基本用法小结
- C#类继承中构造函数用法小结
- C#中 new的几种用法
- 浅谈c#中new和override的用法区别
- C# 中virtual,override,new 的区别与用法(转载)
- C#中New关键字的三种用法
- C#中using和new的用法
- C#学习日记2017-04-22 NPOI用法小结(未完待续)
- C#中comboBox控件的一些基本用法小结
- C#中new的三种用法 (转载)
- C#中各种计时器用法小结
- C#中new的用法,及与override的区别
- .NET(c#)new关键字的三种用法 (转载)
- 黑马程序员--C#中字符串的一些知识小结
- asp.net(c#) static关键字用法小结+示例代码
- C#的New关键字的几种用法
- C# Regex用法小结
- C# DataTable 用法小结