У меня есть 2 класса, один из которых - базовый класс, а второй - производный класс. Хотите ограничить нарезку объектов, как я могу это сделать с помощью C# .net?Как предотвратить объект не должен быть срезом
ответ
UPDATE:
Мои первоначальные мысли, как описано ниже, были найдены как не так: См: C++ slicing in Java/C#
Оригинал Ответ:
Если я правильно понял, что это теоретический вопрос. REDUCING
Нарезка может быть выполнена путем определения новых членов производного класса.
Нарезка происходит при назначении экземпляра производного класса базовому типу базового класса. В этом случае система не знает, где назначить новый тип данных, потому что она определена только в производном классе, а не в базовом классе.
Но нет никакого способа RESTRICT
, что это то, что предположить, чтобы это произошло, и она определяется как
Естественное и неизбежное следствие присвоения по значению из подкласса объектов
однако вы можете объявить класс как sealed
, чтобы предотвратить наследование, которое будет ограничивать клонирование объектов, поскольку оно предотвратит e cause (Inheritance), поэтому у вас не будет производного класса для назначения базовой ссылки по значению.
ссылка, которую вы указали, имеет дело с C++, а не с C#. Вопрос задает вопрос о разрезании на C# – Default
Правда, но концепция среза объекта теоретическая и языковая агностика. каждый язык, который может обеспечивать поток структурированной памяти типа ценности, например. structs или classes будут обрабатывать проблему, называемую обрезкой объектов. – Mortalus
не в соответствии с [этот ответ] (http://stackoverflow.com/a/536290/238902) – Default
- 1. Голанг, первый аргумент для добавления должен быть срезом; имеют структуру
- 2. объект зомби, который не должен быть зомби
- 3. NSDictionary: второй объект должен быть не ноль
- 4. Где объект должен быть проверен?
- 5. Насколько подробно должен быть объект?
- 6. Справочный объект должен быть возвращен?
- 7. allocWithZone объект должен быть выпущен
- 8. Как мы решаем, каким должен быть объект
- 9. Как управлять, если объект не должен быть создан в Javascript
- 10. WSadmin TypeError: индекс последовательности должен быть целым или срезом, используя AdminConfig.modify
- 11. Должен ли это быть объект или массив?
- 12. Должен ли мой объект Handler быть статическим?
- 13. Объект-c gettimeofday должен быть импортирован?
- 14. объект literal - должен быть задан другой ключ
- 15. C# Классическая ошибка. Объект должен быть установлен
- 16. Возвращаемый объект JSON должен быть массивом
- 17. Объект Swift должен быть типа объекта
- 18. diagramTypeProvider не должен быть пустым
- 19. Объект должен быть заблокирован для использования?
- 20. Аргумент должен быть Rect объект стиля
- 21. Ошибка № 2126: объект NetConnection должен быть подключен
- 22. Объект AS3 NetConnection должен быть подключен
- 23. Должен ли этот объект быть одноэлементным?
- 24. undefined объект jQuery, когда он должен быть
- 25. метод перечисления вызывается, когда объект должен быть
- 26. Dispose не должен быть потокобезопасным
- 27. Javascript это не определено. Это должен быть глобальный объект
- 28. нг-форма представляется пустой объект, но объект должен быть изменен
- 29. объект JSON должен быть Силой, не синтаксический анализ JSON «байт»
- 30. Глобальный объект, который будет изменен, когда он не должен быть
Не могли бы вы предоставить нам дополнительную информацию? например с некоторыми примерами кода, чего вы хотите достичь. – Erwin
Вам не нужно беспокоиться о разрезании на C#. См. Этот очень похожий [вопрос] (http://stackoverflow.com/q/536267/944681) –
Вы имеете в виду «запечатанное» ключевое слово, чтобы не допустить, чтобы производные классы перезаписывали некоторые методы или весь класс? (см. [запечатанный в MSDN] (http://msdn.microsoft.com/en-us/library/88c54tsw%28v=vs.100%29.aspx)) – Matten