Найдено результатов: 6

Добавление метода к существующему экземпляру объекта

Я читал, что можно добавить метод к существующему объекту (т. е. не в определении класса) в Python.

Я понимаю, что это не всегда хорошо делать. Но как это сделать?

python   oop   methods   monkeypatching    

584   17   16:03, 1st July, 2020


Статические методы в интерфейсе / абстрактном классе

Во-первых, я понимаю причины, по которым интерфейс или абстрактный класс (в терминологии .NET/C#) не может иметь абстрактных статических методов. Мой вопрос тогда больше сосредоточен на лучшем дизайнерском решении.

Мне нужен набор классов "helper", каждый из которых имеет свои собственные статические методы, так что если я получу объекты A, B и C от стороннего поставщика, у меня могут быть вспомогательные классы с такими методами, как

AHelper.RetrieveByID(string id);
AHelper.RetrieveByName(string name);
AHelper.DumpToDatabase();

Поскольку мои классы AHelper, BHelper и CHelper в основном будут иметь одни и те же методы, то, по-видимому, имеет смысл переместить эти методы в интерфейс, из которого эти классы затем выводятся. Однако желание, чтобы эти методы были статическими, не позволяет мне иметь универсальный интерфейс или абстрактный класс, из которого все они будут производными.

Я всегда могу сделать эти методы нестатическими, а затем сначала создать экземпляр объектов, таких как

AHelper a = new AHelper();
a.DumpToDatabase();

Однако этот код не кажется мне таким интуитивным. Какие у вас есть предложения? Следует ли мне вообще отказаться от использования интерфейса или абстрактного класса (ситуация, в которой я сейчас нахожусь), или это может быть переработано для выполнения дизайна, который я ищу?

.net   abstract-class   static-methods   interface-design    

477   10   08:20, 10th August, 2020


Дженерики в c# и доступ к статическим членам Т

Мой вопрос касается c# и как получить доступ к статическим мемберам ... Ну, я действительно не знаю, как это объяснить (что в некотором роде плохо для вопроса, не так ли?) Я просто дам вам пример кода:

Class test<T>{
     int method1(Obj Parameter1){
         //in here I want to do something which I would explain as
         T.TryParse(Parameter1);

         //my problem is that it does not work ... I get an error.
         //just to explain: if I declare test<int> (with type Integer)
         //I want my sample code to call int.TryParse(). If it were String
         //it should have been String.TryParse()
     }
}

Так что спасибо вам, ребята, за ваши ответы (кстати, вопрос в том, как бы я решил эту проблему без получения ошибки). Это, наверное, довольно простой вопрос для вас!

Спасибо, Никлас


Edit: спасибо всем за ваши ответы!

Хотя я думаю, что фраза try - catch является самой элегантной, я знаю по своему опыту работы с vb, что это действительно может быть облом. Я использовал его один раз, и мне потребовалось около 30 минут, чтобы запустить программу, которая позже заняла всего 2 минуты для вычисления только потому, что я избегал try - catch.

Вот почему я выбрал утверждение swich в качестве лучшего ответа. Это делает код более сложным, но с другой стороны, я думаю, что он будет относительно быстрым и относительно легким для чтения. (Хотя я все еще думаю, что должен быть более элегантный способ ... может быть, на следующем языке, который я изучаю: P )


Хотя, если у вас есть какое-то другое предложение, я все еще жду (и готов принять участие)

c#   generics   static   methods   data-access    

507   12   02:35, 8th August, 2020


Вызов веб-метода интерфейса Project Server из установщика msi

Я использую проект установки Visual Studio web для установки приложения, которое расширяет функциональные возможности Project Server. Я хочу вызвать метод из PSI (интерфейс Project Server) из одного из пользовательских действий моего проекта установки, но каждый раз получаю ошибку "401 Unauthorized access". Что я должен сделать, чтобы получить доступ к PSI? Тот же код, при использовании из консольного приложения, работает без каких-либо проблем.

windows-installer   methods   action    

436   2   17:32, 15th August, 2020


Почему я не могу объявить статические методы в интерфейсе?

Тема говорит больше всего - в чем причина того, что статические методы не могут быть объявлены в интерфейсе?

public interface ITest {
    public static String test();
}

Приведенный выше код выдает мне следующую ошибку (по крайней мере, в Eclipse): "недопустимый модификатор для метода интерфейса ITest.test(); разрешены только публичные & абстрактные".

java   interface   methods   static    

716   14   15:51, 6th August, 2020


Каков ваш опыт проверки программных моделей?

  • Для каких типов приложений вы использовали проверку моделей ?
  • Какой инструмент проверки модели вы использовали?
  • Как бы вы суммировали свой опыт w/ этой техники, в частности, в оценке ее эффективности в обеспечении более высокого качества программного обеспечения?

В ходе моих исследований у меня была возможность использовать Spin, и это вызвало мое любопытство относительно того, сколько фактической проверки модели происходит и какую ценность получают организации из нее. В моем опыте работы я работал над бизнес-приложениями, где (естественно)нет никакого рассмотрения применения формальной проверки к логике. Я бы очень хотел узнать о SO людях, которые проверяют опыт и мысли по этому вопросу. Станет ли проверка моделей когда-нибудь более широко используемой развивающейся практикой, которую мы должны иметь в нашем инструментарии?

algorithm   correctness   formal-methods   formal-verification   model-checking    

451   5   10:02, 7th August, 2020