You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

.NET中如何复用Uri对象,避免重复实例化新对象?

问题解答

首先明确结论:无法在不创建新实例的情况下,直接修改已有Uri对象的指向地址。

原因说明

.NET 体系中的Uri类被设计为不可变类型,实例化完成后所有属性均为只读状态,你尝试给AbsoluteUri等属性赋值的写法无法通过编译,这是框架层面的设计限制,目的是保证Uri实例的线程安全、哈希值稳定,避免使用过程中被意外修改导致不可预期的错误。

优化建议

如果你担心频繁创建Uri实例带来性能损耗,大可不必:Uri实例化的开销极低,常规业务场景下几乎不会成为性能瓶颈,你原本给uri变量重新赋值新Uri实例的写法是官方推荐的标准写法。
如果需要频繁调整地址的各个组成部分,可以使用UriBuilder类实现动态修改,最终再生成Uri实例,示例代码如下:

UriBuilder uriBuilder = new UriBuilder("test");
// 动态修改地址参数
uriBuilder.Host = "www.example.com";
uriBuilder.Path = "/new/path";
uriBuilder.Query = "id=1";
// 最终生成所需的Uri实例
Uri resultUri = uriBuilder.Uri;

内容的提问来源于stack exchange,提问作者stanimirsp

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.06 03:57:02