Так что-то вроде:
public static class StaticClass {}
public class InstanceClass
{
static StaticClass StaticProperty {get;set;}
public InstanceClass()
{
InstanceClass.StaticProperty = StaticClass;
}
}
Я думал, что можно это сделать, но компилятор возвращает эти ошибки:
статические типы не могут использоваться в качестве параметров
статические типы не могут использоваться как типы возврата
EDIT: Я знаю, что это не работает, но почему? Я полагаю, что StaticClass хранится где-то в памяти, поэтому другим переменным может быть разрешено ссылаться на него в одной и той же памяти, верно?
EDIT2: Один из вариантов использования будет примерно таким:
Скажем, у вас есть 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);
Некоторые другие варианты использования, о которых вы могли подумать.