"is" 类型测试是否使用声明模式中断对 C# 中元素的引用

Does "is" type test with declaration pattern break reference to element in C#

假设我有一个函数可以改变 属性 这样的对象:

private void SetTagsInChildren(List<string> tags, Model model)
{
    ContentModel contentModelV1;

    if (model is ContentModel contentModel)
         contentModelV1 = contentModel;

    // Logic to set new tags in model
}

is 类型检查(或之后的赋值)后新变量 contentModel 的声明是否会破坏对原始模型参数的引用?对 contentModelcontentModelV1 所做的调整是否在传递给函数的原始模型上可见?

如果model引用类型is执行引用转换(如果匹配成功)。引用转换只转换引用的静态类型(变量的编译时类型),它“指向”的运行时对象完全相同。