【发布时间】:2020-11-29 12:17:28
【问题描述】:
如何在 C# 的调用方法之外使用 ref 变量。
我会解释我想要实现的目标。
我在一个类(MyClass)中有一个方法,看起来像
private MyObject myobj;
public ref MyObject GetMyObject()
{
return ref myobj;
}
现在我正在从不同类(FetchClass)的另一个方法中获取变量
private MyObject fetchObj;
void Start()
{
fetchObj = ref MyClass.instance.GetMyObject(); //getting error here
}
我喜欢在同一个类的不同方法中使用 fetchObj。这就是我在外面宣布的原因。 但我在 Start 方法中遇到错误。
【问题讨论】:
-
是否有任何模式可以实现类似的用例?我不想每次都调用 GetMyObject。
-
@Sh.Imran "ref 关键字只能在方法的参数中使用" 即not true
-
@SayantanMandal is
MyObject实际上是一个对象(类)?如果是,我不确定你为什么需要ref。 -
@SayantanMandal 每次都调用它有什么问题?您可以使用
private MyObject fetchObj => MyClass.instance.GetMyObjectNotByRef()之类的属性来使其更方便。 -
AFAIK ref 方法返回值只能分配给 ref local 变量,不能分配给类级别变量docs.microsoft.com/en-us/dotnet/csharp/programming-guide/…
标签: c# unity3d pass-by-reference