facebook twitter hatena line email

「Unity/Csharp/Exception/NullReferenceException」の版間の差分

提供: 初心者エンジニアの簡易メモ
移動: 案内検索
(対応方法2)
(NullReferenceException発生)
行16: 行16:
  
 
===対応方法1===
 
===対応方法1===
null判定する
+
is not nullを使う(これが一番良いかも)
 
<pre>
 
<pre>
if (text != null)
+
if (text is not null)
 
{
 
{
 
     text.text = "hoge";
 
     text.text = "hoge";
 
}
 
}
 
</pre>
 
</pre>
 
 
===対応方法2===
 
===対応方法2===
ReferenceEqualsを使う
+
null判定する
 
<pre>
 
<pre>
if (!ReferenceEquals(text, null))
+
if (text != null)
 
{
 
{
 
     text.text = "hoge";
 
     text.text = "hoge";
 
}
 
}
 
</pre>
 
</pre>
 
参考:https://bluebirdofoz.hatenablog.com/entry/2022/09/18/234745
 
  
 
===対応方法3===
 
===対応方法3===
is not nullを使う
+
ReferenceEqualsを使う
 
<pre>
 
<pre>
if (text is not null)
+
if (!ReferenceEquals(text, null))
 
{
 
{
 
     text.text = "hoge";
 
     text.text = "hoge";
 
}
 
}
 
</pre>
 
</pre>
 +
 +
参考:https://bluebirdofoz.hatenablog.com/entry/2022/09/18/234745

2023年10月17日 (火) 16:52時点における版

NullReferenceException発生

以下SerializeFieldのtextに、オブジェクトを入れなかった場合、NullReferenceExceptionが発生する。

using UnityEngine;
using UnityEngine.UI;

public class NullReferenceExceptionScene : MonoBehaviour
{
    [SerializeField] Text text;
    void Start()
    {
        text.text = "hoge";
    }
}

対応方法1

is not nullを使う(これが一番良いかも)

if (text is not null)
{
    text.text = "hoge";
}

対応方法2

null判定する

if (text != null)
{
    text.text = "hoge";
}

対応方法3

ReferenceEqualsを使う

if (!ReferenceEquals(text, null))
{
    text.text = "hoge";
}

参考:https://bluebirdofoz.hatenablog.com/entry/2022/09/18/234745