这是一个按值返回对象引用的方法:
string Foo()
{
return "Hello";
}
string f = Foo();
// f == "Hello"
Run Code Online (Sandbox Code Playgroud)
您不能通过引用返回任何内容,但可以通过引用将变量作为参数传递:
void Bar(ref string s)
{
s = "Hello";
}
string f = null;
Bar(ref f);
// f == "Hello"
Run Code Online (Sandbox Code Playgroud)
请参阅:C#中的参数传递
听起来有些mean昧,您应该阅读C#参考:)
C#将事物分为引用类型和值类型。您可以想象,引用类型是通过引用传递的。这意味着传递了对该对象的引用。
这是通过引用返回的人为设计示例:
class MyClass // <- Reference type.
{
private MyClass _child = new MyClass();
public MyClass GetChild()
{
return _child;
}
}
Run Code Online (Sandbox Code Playgroud)
值类型按值传递;尽管我想在幕后做些其他事情。不过,这对您并不重要,只有行为很重要。
值类型的例子:int,char,Color...
通过创建引用类型,通过创建class值类型struct。