I have a method that I would like to return either PrefabItem or null. However, when I do the below, I get an error:
Cannot convert null to 'PrefabItem' because it is a non-nullable value type
struct PrefabItem { }
public class A {
int prefabSelected = -1;
private static List<PrefabItem> prefabs = new List<PrefabItem>();
private PrefabItem GetPrefabItem() {
if (prefabSelected > -1) {
return prefabs[prefabSelected];
}
return null;
}
}
I saw that I could use Nulllable<T>, but when I do so I get the same message.
struct PrefabItem { }
struct Nullable<T> {
public bool HasValue;
public T Value;
}
public class A {
int prefabSelected = -1;
private static Nullable<List<PrefabItem>> prefabs = new Nullable<List<PrefabItem>>();
private PrefabItem GetPrefabItem() {
if (prefabSelected > -1) {
return prefabs.Value[prefabSelected];
}
return null;
}
}
What do I need to do to get my method to return PrefabItem or null?
You should return either Nullable< PrefabItem > or PrefabItem?
Example of null-able syntax:
private PrefabItem? GetPrefabItem() {
if (prefabSelected > -1) {
return prefabs[prefabSelected];
}
return null;
}
One more comment. If you need List of null-able elements, declaration of the list should be either:
private static List<PrefabItem?> prefabs = new List<PrefabItem?>();
or
private static List<Nullable<PrefabItem>> prefabs = new List<Nullable<PrefabItem>>();
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With