在 C# 中 new 关键字据说有三种用法
本文介绍了new关键字的三种用法,下面我们来看看三种的具体使用。
说到C#里的new关键字,大家肯定不陌生,它大概是日常编码中间出现频率最高的关键字之一了。通常,我们用它来创建一个新的对象实例。但你可能不知道,这个看似简单的new,其实还有另外两副“面孔”:它既可以作为修饰符来使用,也能在泛型中充当约束条件。接下来,我们就一起把这三种用法的门道摸清楚。
免费影视、动漫、音乐、游戏、小说资源长期稳定更新! 👉 点此立即查看 👈

一、NEW关键字作为运算符
作为运算符的new,其核心任务就是创建类型的新实例。这是我们最熟悉的场景,比如实例化一个类、创建一个数组,甚至是初始化匿名类型,都离不开它。看几个典型的例子:
//new一个配置类
var configuration = new ConfigurationBuilder();
//创建一个字典
var dict = new Dictionary();
dict["first"] = 10;
//创建数组
var numbers = new int[3];
numbers[0] = 10;
//匿名类型实例化
var example = new { Greeting = "Hello", Name = "World" };
二、NEW关键字作为修饰符
当new扮演修饰符的角色时,它的作用就变得微妙了——用于显式隐藏从基类继承而来的成员。这意味着,在实现多态时,如果子类成员用new修饰,那么通过父类引用去调用,将不会触发子类的这个版本。通过下面的例子,你能看得更明白:
//新建父类
class people
{
public string name { get; set; }
public virtual void say()
{
Console.WriteLine("hello people");
}
}
//男人
class man : people
{
public override void say()
{
Console.WriteLine("hello man");
}
}
//女人
class woman : people
{
//这个方法被显示隐藏了
public new void say()
{
Console.WriteLine("hello woman");
}
}
static void Main(string[] args)
{
//这里不影响调用
woman w = new woman();
w.name = "小花";
w.say();
//这里隐藏了子类,会调用父类
people p = new woman();
p.name = "小花";
p.say();
//这里优先调用子类 如果找不到重写会调用父类
people p2 = new man();
p2.name = "小王";
p2.say();
}
运行上面的代码,打印结果如下:

三、NEW关键字作为泛型中约束
最后,new还能在泛型领域大显身手。作为约束条件时,new()要求泛型类型参数必须有一个公共的无参数构造函数。有个重要的前提:该类型不能是抽象类。我们来看一个具体的应用实例:
//新建一个类
public class People
{
private string name;
private int id;
public People()
{
name = "张山";
id = 0;
}
public People(string _name, int _id)
{
name = _name;
id = _id;
}
public string Name
{
get { return name; }
set { name = value; }
}
public int ID
{
get { return id; }
set { id = value; }
}
}
//使用new约束
class ItemFactory where T : new()
{
public T GetNewItem()
{
return new T();
}
}
//输出
static void Main(string[] args)
{
ItemFactory PeopleFactory = new ItemFactory();
//此处编译器会检查People是否具有公有的无参构造函数。否则会报错
Console.WriteLine("{0}'ID is {1}.", PeopleFactory.GetNewItem().Name, PeopleFactory.GetNewItem().ID);
}
//打印结果为:张山'ID is 0.
游乐网为非赢利性网站,所展示的游戏/软件/文章内容均来自于互联网或第三方用户上传分享,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系youleyoucom@outlook.com。
同类文章
随变 - 字节跳动旗下抖音推出的AI视频社区应用
随变是什么 说起这两年AI应用的创新,字节跳动旗下抖音推出的“随变”绝对是个值得关注的选手。这款应用定位很清晰:一个主打潮流玩法的AI视频社区。它的核心卖点,是用AI生成个人虚拟形象,然后让你用这个“数字分身”去和各种角色——明星、影视IP、朋友——进行“合拍”,玩出花样。为了降低用户门槛,它的界面
FantasyWorld - 高德地图联合北邮推出的3D世界建模框架
FantasyWorld是什么 说到能将视频“理解”并“构建”成三维世界的AI,FantasyWorld是一个绕不开的名字。这个由高德地图与北京邮电大学联合开发的3D世界建模框架,其核心突破在于,它用一套统一的模型,就能从视频直接预测并生成高质量的3D场景。这背后的关键,是在一个已经训练好的强大视频
Yollo AI - 沉浸式AI角色对话与视频生成平台
Yollo AI是什么 简单来说,Yollo AI是一个将沉浸式AI角色对话与AI视频生成能力合二为一的平台。在这里,用户不仅能与超过20万个各具特色的AI角色进行互动,体验从浪漫情感到奇幻冒险的深度连接,还能轻松地将文字或图片转化为生动的视频叙事。平台鼓励创造与分享,用户可以打造属于自己的独特AI
Qwen3-VL-Reranker - 阿里通义开源的跨模态理解模型
Qwen3-VL-Reranker是什么 说到多模态检索的“最后一公里”精准化,阿里通义推出的Qwen3-VL-Reranker绝对是一个绕不开的关键角色。简单来说,这款模型是在强大的Qwen3-VL基础上专门打造的跨模态理解专家。它的核心任务,就是处理任意模态组合的查询与文档对——比如你用一张图加
Qwen3-VL-Embedding - 阿里通义开源的多模态信息检索模型
Qwen3-VL-Embedding是什么 在信息处理的世界里,让机器真正“看懂”图片并理解文字,一直是业界的核心挑战。现在,这个问题有了更优雅的解法——阿里通义推出的多模态信息检索模型Qwen3-VL-Embedding。简单来说,它的使命就是为文本、图像、图表文档乃至视频这些形态各异的数据,搭建
- 日榜
- 周榜
- 月榜
1
2
3
4
5
6
7
8
9
10
相关攻略
2015-03-10 11:25
2015-03-10 11:05
2021-08-04 13:30
2015-03-10 11:22
2015-03-10 12:39
2022-05-16 18:57
2025-05-23 13:43
2025-05-23 14:01
热门教程
- 游戏攻略
- 安卓教程
- 苹果教程
- 电脑教程
热门话题

