Как сохранить ссылку на статический класс?

Примерно так:

public static class StaticClass {}

public class InstanceClass
{
    static StaticClass StaticProperty {get;set;}

    public InstanceClass()
    {
        InstanceClass.StaticProperty = StaticClass;
    }
}

Я думал, что это можно сделать, но компилятор возвращает следующие ошибки:

статические типы не могут быть используются как параметры

статические типы не могут использоваться как возвращаемые типы

РЕДАКТИРОВАТЬ: Я знаю, что это не работает, но почему? Я полагаю, что StaticClass хранится где-то в памяти, поэтому другим переменным можно разрешить ссылаться на него в той же памяти, верно?

РЕДАКТИРОВАТЬ2: Один из вариантов использования будет примерно таким:

Допустим, у вас есть 5 разных статические классы, которые вы собрали без исходного кода, и они делают общие вещи, поэтому вы хотите иметь удобный доступ к ним через один статический класс. Вы можете сделать это так:

public static class GenericStuff
{
    public LinearAlgebra LinearAlgebra {get;set;}
    public StringUtilities String {get;set;}
    public GeometryOps Geometry {get;set;}
}

И использовать как:

GenericStuff.LinearAlgebra.GetAngleBetweenVectors(v0, v1);

Некоторые другие варианты использования, о которых вы можете подумать.

13
задан Joan Venge 4 March 2011 в 05:36
поделиться