Каков синтаксис для создания класса в C #, который был бы равен модулю в VB.net

#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 , если это возможно — это просто усложняет работу, чем нужно .. Вроде как называть все «вещью» — («Поместите вещь в вещь и откройте вещь» сложнее понять, чем «вставьте ключ в замок и откройте дверь»)