Я не думаю, что это - лучшая практика.
простая истина - то, что интерфейс является не чем иным как контрактом, что метод реализован. Это не контракт на также a.), как метод должен быть реализован и b.), что тот метод должен делать точно (он только гарантирует тип возврата), двумя причинами, что я подбираю, был бы Ваш повод в желании этого вида теста.
, Если Вы действительно хотите управлять своей реализацией метода, у Вас есть опция:
Пример:
public static ReturnType MethodName (this IMyinterface myImplementation, SomeObject someParameter)
{
//method body goes here
}
Любая реализация, правильно ссылающаяся к тому дополнительному методу, испустит точно, что дополнительный метод, таким образом, только необходимо протестировать его однажды.
В VB.NET нет эквивалента изменчивому ключевому слову C #. Volatile в C # просто гарантирует, что компилятор обрабатывает вещи по-другому при генерации IL, но компилятор VB.NET не имеет этой опции.
Вы можете обойти это таким способом ( взято из этого сообщения в блоге ):
Function VolatileRead(Of T)(ByRef Address As T) As T
VolatileRead = Address
Threading.Thread.MemoryBarrier()
End Function
Sub VolatileWrite(Of T)(ByRef Address As T, ByVal Value As T)
Threading.Thread.MemoryBarrier()
Address = Value
End Sub