首页 > 解决方案 > 在一行中实例化并返回一个对象

问题描述

下面的代码有效,显示了当对象被实例化时对象的返回。为什么这行得通?在我看来,我可以理解“Return new ...”,或者在单独的行上实例化 Dummy1 和“Return Dummy1”。

    public class TestClass1
    {
        public string s = "test2";
    }

    public TestClass1 GetTestClass()
    {
        TestClass1 dummy1;
        return dummy1 = new TestClass1();         //  Why is this valid?
    }

标签: c#

解决方案


这是因为在 C# 中,赋值也是产生值的表达式。

试试这个:

public class Program
{
    public static void Main()
    {
        var str1 = "foo";
        var str2 = (str1 = "bar");
        Console.WriteLine(str2);
    }
}

你会看到str2它将保存str1被分配 value 的 value "bar"


推荐阅读