Я использую специальный класс для передачи данных между методами. Одной из основных функций является обработка изображений, поэтому у меня есть путь к изображению и пользовательский путь пальца в качестве свойств моего класса. Я хочу использовать методы, включенные в класс System.IO.Path
, как часть свойств, но я не могу это сделать.Почему я не могу объявить свойство как System.IO.Path
Я знаю, как заставить это работать, используя тип string
вместо System.IO.Path
как тип, поэтому мне не нужно никому говорить мне, как это сделать. Я просто думаю, что возможность объявить мой ImagePath
как System.IO.Path
будет намного проще, потому что я могу использовать методы Path
на свой ImagePath
. Мне нужно упустить некоторое понимание об объявлении типов, и я надеюсь, что смогу научиться этому вопросу.
Как класс определяется:
Public Class myClass
'structured information which will be passed to a replicator
Public Property ID As Integer
Public Property ImagePath As System.IO.Path '<== this doesn't work
Public Property ThumbPath As System.IO.Path '<== this doesn't work
Public Property GroupID As Byte
Public Property SystemID As Byte
Public Property Comment As String
'Other properties
End Class
Как я хотел бы использовать этот класс:
Public Function myReplicatorFunc(myObj as myClass)
Dim myTempPath as string
Dim myDBObj as myDBConnection
'handle database connections
myTempPath = myObj.ImagePath.GetDirectoryName() & "\" _
myDBObj.GetIntID.toString() & "\" _
myObj.ImagePath.GetExtension()
My.Computer.FileSystem.RenameFile(myObj.ThumbPath.toString, myTempPath)
'Other file movements for replication etc
End Function
Почему я не могу объявить свойство как класс System.IO.Path? Если по какой-либо причине ответ просто «НЕТ» (пожалуйста, объясните, почему), то как я могу использовать методы System.IO.Path
как расширения для моих свойств без повторной записи в качестве пользовательского класса с точной копией тех же методов?
Я могу построить этот класс в VB.NET нет проблем. Задав вопрос, я подумал, что это самый простой способ сделать это. Я надеялся, что это будет более автоматическим, но, увы, я, видимо, не смогу купить пирог и съесть его. Благодарим вас за объяснения различий между классом и пространством имен. – turbonate
@turbonate Да, я согласен с вами - было бы лучше, если бы было легче сделать это; Я нахожу это обходное решение немного неуклюжим. Я рад, что это помогло - спасибо за голосование. – xxbbcc