Шаблон состояния типа в C#C#

Место общения программистов C#
Ответить
Anonymous
 Шаблон состояния типа в C#

Сообщение Anonymous »

Я хочу реализовать шаблон состояния типа в C#. Я пробовал что-то вроде:
interface Open {}
interface Closed {}

abstract class Foo { }

class Bar where T: Closed { }
class Bar where T: Open { }

а также другие варианты, но все они заканчиваются жалобами компилятора. Этот конкретный пример дает (через https://www.programiz.com/csharp-progra ... -compiler/):
/tmp/qmk1tTLHWG.cs(12,11): error CS0101: The namespace 'baz' already contains a definition for 'Bar'
/tmp/qmk1tTLHWG.cs(11,11): error CS0265: Partial declarations of 'Bar' have inconsistent constraints for type parameter 'T'


Я недостаточно знаю о системе типов C#, чтобы знать, что на самом деле будет работать, и не могу найти подробной документации о том, как это сделать. Можно ли реализовать шаблон состояния типа? Я нашел блог Адама, однако на самом деле он не реализует шаблон состояния типа, как показано в 1, и это то, что я хотел бы сделать, если это возможно.
В идеале мне бы хотелось что-то вроде
struct Closed { };
struct Open { };

class Foo {
// functions applicable to Foo's in both the Closed and Open states
}

class Foo {
// functions applicable to Foo's in just the Open state
}

class Foo {
// functions applicable to Foo's in just the Open state
}


Подробнее здесь: https://stackoverflow.com/questions/786 ... in-c-sharp
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C#»