C# 如何知道类是否被实例化
我使用以下代码在脚本之间共享变量和方法 主脚本C# 如何知道类是否被实例化,c#,unity3d,C#,Unity3d,我使用以下代码在脚本之间共享变量和方法 主脚本 private FileScript1 Script1; public void Start () { Script1 = new FileScript1(this); Script2 = new FileScript2(this); Script3 = new FileScript3(this); } 其他脚本 class FileScript1 // FileScript2, FileScript3 { private
private FileScript1 Script1;
public void Start () {
Script1 = new FileScript1(this);
Script2 = new FileScript2(this);
Script3 = new FileScript3(this);
}
其他脚本
class FileScript1 // FileScript2, FileScript3
{
private Target _target;
public FileScript1(Target target)
{
_target = target;
}
}
现在,在从目标脚本访问脚本之前,我需要知道脚本是否已实例化。
现在我用布尔运算解决了这个问题
public void Start () {
Script1 = new FileScript1(this);
myFileScript1 = true;
Script2 = new FileScript2(this);
Script3 = new FileScript3(this);
}
在访问脚本之前,我验证这个变量。
我在想,有没有更干净的方法?
我查看了论坛,但运气不佳。常见检查示例:
Assert(objectName!=null,“类未实例化”)
如果(Script1!=null){…}
?¯\_(ツ)_/“通过检查变量是否为null?还有一些C#课程会很好…C#也有?。
运算符在进行否决表决之前,最好先问一下这样一个看似显而易见的问题的原因!null是我做的第一件事,但VisualStudio宣布它是一个错误。我关闭并重新打开Unity,现在它开始了。我当然不会问b。”E在你的水平,但是我知道C的基本原理。也许如果我已经明确了发生了什么,你会在没有拿走我的选票的情况下做的。谢谢你的回答。@瓦尔特,我没有投票,但是注意到你的问题虽然看起来很明显,但没有任何迹象表明你自己认为它是“显而易见的”。问题。这个问题也没有提到你曾尝试先测试空值,但出于某种奇怪的原因,它产生了问题。我们所看到和知道的只是你在问题中写的东西,这看起来就像是一个初学者迈出第一步,却不知道简单的空值测试就足够了的问题。对于许多人来说对于您的问题,这可能是您提出上述问题的明显原因。为什么要用三个不同的值覆盖Script1
?如果if(Script1==null)
显示错误,您可能应该将其添加到您的问题中