Каковы относительные достоинства написания SQL Server CLR UDT как `struct` или` class`?

Почти каждый образец кода для пользовательских типов CLR SQL Server реализует тип как struct. Тем не менее, Microsoft указывает, что создание их как class также является вариантом, но я не могу найти никакой документации или даже обсуждения на относительные достоинства каждой альтернативы.

В каких ситуациях можно было бы выбрать SQL CLR UDT как структуру или класс, соответственно?

1 ответ

Ну, рекомендация состоит в том, чтобы иметь их как структуры. Но обратите внимание:

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

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

licensed under cc by-sa 3.0 with attribution.