Keval Savani Ответов: 1

Как я могу реализовать эту структуру классов в VB.NET-что?


Я много раз видел, что один элемент имеет более одной функции и свойства, как показано ниже
ListBox1.Items(1).ToString()

в приведенном выше примере будет возвращено значение второго элемента.

Я хочу сделать то же самое со своим классом. У меня есть один класс под названием устройства.
Я хочу установить имя устройства и на основе этого я хочу вернуть его свойство/значение, как показано ниже

Dim d as New devices
d.deviceItem("device1").name
d.deviceItem("device1").macId
d.deviceItem("device1").design

В основном это вернет имя устройства, macId и дизайн.
каков самый простой способ реализовать это

Что я уже пробовал:

Public _deviceName As String
Public Property name() As String
    Get
        Return _deviceName
    End Get
    Set(ByVal value As String)
        _deviceName = value
    End Set

End Property

Public Sub deviceItem(ByVal deviceName As String)
    Me._deviceName = "this is device"
End Sub


Я даже не знаю, что, если это правильно или нет.

Пожалуйста, помогите мне

1 Ответов

Рейтинг:
2

Maciej Los

Если вы хотите создать собственный класс, то вы на правильном пути! Я сделал небольшие улучшения:

Public Class DeviceItem
	Private sName As String = String.Empty
	Private sMacId As String = String.Empty
	Private sDesign As String = String.Empty

	Public Sub New(deviceName As String)
		sName = deviceName
	End Sub
	
	Public Sub New(deviceName As String, macid As String)
		sName = deviceName
		sMacId = macid
	End Sub
	
	Public Property name As String
		Get
			Return sName
		End Get
		Set (value As String)
			sName = value
		End Set
	End Property

	Public Property macid As String
		Get
			Return sMacId
		End Get
		Set (value As String)
			sMacId = value
		End Set
	End Property
	
	Public Property design As String
		Get
			Return sDesign
		End Get
		Set (value As String)
			sDesign = value
		End Set
	End Property
	
	Public Overrides Function ToString() As String
		Return String.Format("{0} {1} {2}", sName, sMacId, sDesign)
	End Function
	
End Class


Использование:
Dim d1 As DeviceItem = New DeviceItem("device1")
Dim d2 As DeviceItem = New DeviceItem("device2", "macid2")
Console.WriteLine(d1.ToString())
Console.WriteLine(d2.ToString())


Для получения более подробной информации, пожалуйста, смотрите:
Оператор Класса (Visual Basic) | Microsoft Docs[^]
Определение Классов (Visual Basic) | Microsoft Docs[^]
Перегруженные свойства и методы (Visual Basic) | Microsoft Docs[^]


Keval Savani

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

Maciej Los

Это было сделано только для примера. Все, что вам нужно сделать, это изменить код в соответствии с вашими потребностями.