Реализация VB.NET для C # base.GetHashCode () структуры - PullRequest
0 голосов
/ 17 декабря 2018

Я портирую структуру 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?

...