结构体的可空判断
今日写一个树类型:
struct PNode<T>
{
public T Data;
public int Pos;
public PNode(T value, int p)
{
// TODO: Complete member initialization
this.Data = value;
this.Pos = p;
}
}
class PTree<T>
{
PNode<T>[] nodes;
int maxsize;
int length;
public PTree(int size)
{
maxsize = size;
nodes = new PNode<T>[size];
length = 0;
}
public int Parent(T t)
{
//抛错的代码。
//值类型不可以为Null
//PNode<T> result = nodes.ToList().Find(e => e.Data.Equals(t));
//if (result==null)
//{
// return 0;
//}
//return -1;
//正确的代码
//值类型判断是否有值的正解
PNode<T>? result = nodes.ToList().Find(e => e.Data.Equals(t));
if (result.HasValue)
{
return result.Value.Pos;
}
return -1;
}
}
发现了可空类型的用处。

浙公网安备 33010602011771号