我怎么知道系统类是按值调用还是按引用调用

几个月前,我才开始进行C#编程,但偶然发现了令我困惑的东西。

我无法更改,例如一个字符串,而不向该方法添加“ ref ”或在该方法内返回另一个字符串。示例:

    static void Main(string[] args)
    {
        string text = "old text";
        ChangeString(ref text);

        Console.WriteLine(text);
        // Console-Output:
        // new text
    }


    // set a string's value to "new text"
    public static void ChangeString(ref string str)
    {
        str = "new text";
    }

列表似乎并不需要放在前面的“ ref ”即可使用按引用调用。示例:

    static void Main(string[] args)
    {
        List<string> names = new List<string>();
        names.Add("Alexa");
        names.Add("Siri");

        AddNamesToList(names);

        names.ForEach(i => Console.Write("{0},",i));
        // Console-Output:
        // Alexa,Siri,Google Assistant,Bixby,}

    public static void AddNamesToList(List<string> names)
    {
        names.Add("Google Assistant");
        names.Add("Bixby");
    }

现在我的问题是:如何知道某个类是“按引用调用”还是“按值调用” /如何确定我是否可以像上面的列表或示例中的字符串一样使用它? / p>

谢谢!

dsfvdkjdfg4ah94njknh 回答:我怎么知道系统类是按值调用还是按引用调用

暂时没有好的解决方案,如果你有好的解决方案,请发邮件至:iooj@foxmail.com
本文链接:https://www.f2er.com/3111983.html

大家都在问