#c# #vb.net
#c# #vb.net
Вопрос:
Я делаю почти все свои программы в VB.net (все вкусы). Теперь мне назначена задача создать новую процедуру в существующем приложении C #. Что я хочу иметь возможность сделать, так это передать строковую переменную в класс, где я могу определить тип устройства для портативного устройства с символом и выяснить, где находится исполняемый файл на устройстве. Я пытаюсь сохранить класс, чтобы он содержал изменения, которые мы вносим в будущем, в одном месте.
итак, краткое описание на экране, там будет кнопка. при нажатии этой кнопки я хочу передать текст кнопки в (что было бы модулем в VB) класс и в зависимости от передаваемого текста и типа устройства вызвать отдельный исполняемый файл, который находится на устройстве.
Все, что я пробовал до сих пор, приводило к ошибкам. При нажатии кнопки у меня есть
String Reponse = clsCallAction("Activity");
но при этом выдается сообщение о том, что clsCallAction является типом, но используется как переменная.
вот пример clsCallaction
internal static partial class clsCallAction
{
public static object GetPath(object lAppName)
{
string resp = "";
if (lAppName.Equals("Activity"))
{
resp = @"applicationactivity.exe";
}
return resp;
}
}
Если я помещу new перед clsCallAction («Activity») при нажатии кнопки, я получаю сообщение
cannot create instance статического класса ‘clsCalACtion’
оцените любые указатели. очень новый в C#
Комментарии:
1.
clsCallAction.GetPath("Activity")
? Почему вы используетеobject
s?GetPath
Вероятно, метод должен бытьpublic static string GetPath(string lAppName)
. Кроме того, я не могу придумать ничего подобногоclsCallAction("Activity")
, что возможно в VB. Как бы вы это сделали с модулем VB?2. Я не понимаю, откуда берется ваша путаница. Если бы в VB
clsCallAction
был модуль, это тоже былоclsCallAction.GetPath
бы .3. Кроме того, вы должны удалить
cls
префикс как в вашем коде VB, так и в коде C #. Для получения дополнительной информации о соглашениях об именах, пожалуйста, ознакомьтесь здесь и здесь .4. Все хорошие комментарии. Я изо всех сил пытаюсь настроить класс с нуля. Что касается комментария о том, почему я использую объекты, которые я не хочу. Я просто хочу передать string в class и чтобы он возвращал путь к исполняемому файлу
5. Единственное различие между статическим классом C # и модулем VB заключается в том, что члены первого должны быть указаны с именем типа, в то время как последние не должны быть. Однако в этом нет большой тайны, потому что он точно такой же, как
Shared
член класса VB. Вы когда-нибудь вызывали такой метод, какFile.ReadAllText
? Если это так, вы уже знаете, как вызвать методstatic
класса, так почему вы пытаетесь сделать это сложнее, чем есть?
Ответ №1:
Это будет выглядеть примерно так:
public static class CallAction
{
public static object GetPath(object lAppName)
{
string resp = "";
if (lAppName.Equals("Activity"))
{
resp = @"applicationactivity.exe";
}
return resp;
}
}
И будет использоваться следующим образом:
String Reponse = CallAction.GetPath("Activity");
- Не префиксные классы с
cls
- Избегайте использования
object
, если это возможно — это просто усложняет работу, чем нужно .. Вроде как называть все «вещью» — («Поместите вещь в вещь и откройте вещь» сложнее понять, чем «вставьте ключ в замок и откройте дверь»)