Как я могу получить доступ к переменным в другом классе, не удаляя другие? - PullRequest
0 голосов
/ 31 октября 2011

Мне предъявлено обвинение в портировании проекта VB6 в VB.NET. В vb6, если бы вы были в классе, отдельном от конкретной переменной, вы могли бы легко получить доступ к этой переменной:

Public Class Foo
    Public k As Integer
End Class

Public Class Bar
    k = 12
End Class

В VB.NET я понимаю, что прежде чем вы сможете использовать переменную в другом классе, вы должны объявить ее новый экземпляр:

Dim foobar As New Foo

Это было бы хорошо, но мне нужно получить доступ к этим переменным из разных классов, и каждый раз, когда я объявляю новый экземпляр, он стирает все старые значения из переменных, которые мне нужны. Кто-нибудь может помочь? Я пытался использовать выражения Inherits, но они представляли много проблем.

Спасибо. Ник

Ответы [ 3 ]

4 голосов
/ 31 октября 2011

Вы ищете ключевое слово shared.Это делает член доступным для других классов без необходимости иметь экземпляр вашего класса.См. MSDN для получения дополнительной информации

2 голосов
/ 31 октября 2011

Для порта просто используйте модуль Public, как в vb6

Public Module Foo
   Public k As Integer
End Module

Public Module Bar
   Foo.k = 12
End Module

Это не очень хорошая практика, но она поможет вам сделать первый проход в порт.В идеале вы должны провести рефакторинг модулей / общих функций, поскольку возможность доступа к переменной из любой части системы приведет к созданию кода, который сложнее поддерживать

0 голосов
/ 31 мая 2014
Dim YourobjName As YourClassName = Me.DataContext

Теперь вы можете использовать публичные методы и функции с YourobjName. Здесь YourClassName будет классом, к которому вы хотите получить доступ к публичным объектам.

...