Я портирую структуру C # на VB.NET и сталкиваюсь со следующей проблемой:
Структура используется для безопасного вызова методов объектов без необходимости проверять null все время.Он имеет ровно один общий элемент, который может быть null :
mValue As T
GetHashCode метод реализован так:
public override int GetHashCode()
{
if (this.mValue != null)
{
this.mValue.GetHashCode();
}
return base.GetHashCode();
}
В реализации VB.NET я не могу сделать
Return MyBase.GetHashCode()
, потому что MyBase недопустим в структуре.
Я прочитал этот комментарий о том, как ValueType.GetHashCode реализован.
В соответствии с этим, в моем примере, я мог бы просто использовать
Return Me.GetType().GetHashCode()
для случая, когда mValue is null .
Но это не кажется мне очень надежной реализацией.Есть ли простой способ вызвать base.GetHashCode () для структуры в VB.NET?