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

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

Во-первых, я понимаю причины, по которым интерфейс или абстрактный класс (в терминологии .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


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

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

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

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

java   interface   methods   static    

717   14   15:51, 6th August, 2020


ASP.Net: использование System.Web.UI.Control.ResolveUrl() в общей / статической функции

Как лучше всего использовать ResolveUrl() в общей / статической функции в Asp.Net? Мое текущее решение для VB.Net-это:

Dim x As New System.Web.UI.Control
x.ResolveUrl("~/someUrl")

Или C#:

System.Web.UI.Control x = new System.Web.UI.Control();
x.ResolveUrl("~/someUrl");

Но я понимаю, что это не лучший способ назвать его.

c#   asp.net   vb.net   static   resolveurl    

561   3   12:53, 8th August, 2020


Как можно реализовать FxCop / статический анализ на существующей базе кода

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

static-analysis   fxcop   metrics    

363   4   21:06, 1st October, 2020