Самым близким способом, который я могу придумать, является использование явной реализации:
public partial class TestClass : ITestInterface
{
public bool EncryptionVB
{
((ITestInterface)this).Encryption = value;
}
bool ITestInterface.Encryption { set; }
}
Теперь, на первый взгляд, это может выглядеть как «не то же самое».Но это действительно так.Примите во внимание тот факт, что в VB.NET, когда вы называете элемент, который реализует элемент интерфейса, что-то отличное от того, что определяет интерфейс, это «новое имя» появляется только тогда, когда вы знаете тип во время компиляции.
Итак:
Dim x As New TestClass
x.EncryptionVB = True
Но если бы x
в приведенном выше коде было набрано как ITestInterface
, это свойство EncryptionVB
не было бы видимым.Он будет доступен только как Encryption
:
Dim y As ITestInterface = New TestClass
y.Encryption = True
На самом деле он ведет себя точно так же, как , как явная реализация интерфейса в C #.Взгляните на эквивалентный код:
TestClass x = new TestClass();
x.EncryptionVB = true;
ITestInterface y = new TestClass();
y.Encryption = true;