Примерно так:
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);
Некоторые другие варианты использования, о которых вы можете подумать.