Статические методы для универсальных классов?

Существует дополнение Inkscape, которое обеспечивает функциональность рекурсивного применения преобразования к фигурам. Его удобно назвать applytransforms , и после установки, доступной в меню в разделе Extensions | Modify Path | Apply Transform

, обратите внимание, что это изменит путь, и для примера прямые линии пути станут прямыми кривыми Безье:

"M-1.0 -1.0C-1.0 -1.0 1.0 -1.0 1.0 -1.0C1.0 -1.0 1.0 1.0 1.0 1.0C1.0 1.0 -1.0 1.0 -1.0 1.0C-1.0 1.0 -1.0 -1.0 -1.0 -1.0"

8
задан Esteban Küber 31 July 2009 в 15:45
поделиться

2 ответа

Если значения не имеют никакого отношения к типу универсального базового класса, то они не должны быть в универсальном базовом классе. Они должны или быть в абсолютно отдельном классе, или в неуниверсальном базовом классе универсального класса.

Примите во внимание, что для статических переменных, Вы получаете другую статическую переменную на комбинацию аргумента типа:

using System;

public class GenericType<TFirst, TSecond>
{
    // Never use a public mutable field normally, of course.
    public static string Foo;
}

public class Test
{    
    static void Main()
    {
        // Assign to different combination
        GenericType<string,int>.Foo = "string,int";
        GenericType<int,Guid>.Foo = "int,Guid";
        GenericType<int,int>.Foo = "int,int";
        GenericType<string,string>.Foo = "string,string";


        // Verify that they really are different variables
        Console.WriteLine(GenericType<string,int>.Foo);
        Console.WriteLine(GenericType<int,Guid>.Foo);
        Console.WriteLine(GenericType<int,int>.Foo);
        Console.WriteLine(GenericType<string,string>.Foo);

    }
}

Это кажется, что Вы действительно не хотите другой статической переменной на T из Вашего универсального базового класса - таким образом, у Вас не может быть его в Вашем универсальном базовом классе.

18
ответ дан 5 December 2019 в 06:39
поделиться

Это точно, что необходимо сделать. Когда у Вас есть параметр типа, каждое различное инстанцирование типа является отдельным типом. Это ведет для разделения статических переменных.

Единственное обходное решение должно иметь базовый класс, из которого происходит универсальный класс.

7
ответ дан 5 December 2019 в 06:39
поделиться
Другие вопросы по тегам:

Похожие вопросы: