「Unity/Csharp/Exception/NullReferenceException」の版間の差分
提供: 初心者エンジニアの簡易メモ
(→対応方法2) |
(→NullReferenceException発生) |
||
行16: | 行16: | ||
===対応方法1=== | ===対応方法1=== | ||
− | + | is not nullを使う(これが一番良いかも) | |
<pre> | <pre> | ||
− | if (text | + | if (text is not null) |
{ | { | ||
text.text = "hoge"; | text.text = "hoge"; | ||
} | } | ||
</pre> | </pre> | ||
− | |||
===対応方法2=== | ===対応方法2=== | ||
− | + | null判定する | |
<pre> | <pre> | ||
− | if | + | if (text != null) |
{ | { | ||
text.text = "hoge"; | text.text = "hoge"; | ||
} | } | ||
</pre> | </pre> | ||
− | |||
− | |||
===対応方法3=== | ===対応方法3=== | ||
− | + | ReferenceEqualsを使う | |
<pre> | <pre> | ||
− | if (text | + | 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