Click here to Skip to main content
15,903,201 members
Home / Discussions / C#
   

C#

 
GeneralRe: To be liberal or conservative with virtual methods... Pin
Jimmanuel8-Dec-09 11:21
Jimmanuel8-Dec-09 11:21 
GeneralRe: To be liberal or conservative with virtual methods... Pin
PIEBALDconsult8-Dec-09 11:52
mvePIEBALDconsult8-Dec-09 11:52 
GeneralRe: To be liberal or conservative with virtual methods... Pin
Jimmanuel8-Dec-09 12:44
Jimmanuel8-Dec-09 12:44 
GeneralRe: To be liberal or conservative with virtual methods... Pin
PIEBALDconsult8-Dec-09 13:03
mvePIEBALDconsult8-Dec-09 13:03 
GeneralRe: To be liberal or conservative with virtual methods... [modified] Pin
PIEBALDconsult8-Dec-09 14:46
mvePIEBALDconsult8-Dec-09 14:46 
GeneralRe: To be liberal or conservative with virtual methods... Pin
Jimmanuel8-Dec-09 15:34
Jimmanuel8-Dec-09 15:34 
GeneralRe: To be liberal or conservative with virtual methods... [modified] Pin
PIEBALDconsult8-Dec-09 16:26
mvePIEBALDconsult8-Dec-09 16:26 
AnswerRe: To be liberal or conservative with virtual methods... Pin
Daniel Grunwald8-Dec-09 15:05
Daniel Grunwald8-Dec-09 15:05 
A class needs to be designed for inheritance. If you just make stuff virtual, you end up with the fragile base class problem[^].

Composition (and encapsulation) is way better than inheritance.

If the base class calls any of its own virtual methods, this must be documented! And any future change to these internal calls must be considered a breaking API change. See http://www.javaworld.com/javaworld/jw-08-2003/jw-0801-toolbox.html?page=3[^] for an example.

Usually, I just make my classes sealed. Extensibility is hard work, just slapping a few virtual modifiers on your methods without thinking will only cause trouble in the long run.
GeneralRe: To be liberal or conservative with virtual methods... Pin
PIEBALDconsult8-Dec-09 17:44
mvePIEBALDconsult8-Dec-09 17:44 
QuestionCheckedListBox state to property Pin
BDJones8-Dec-09 7:06
BDJones8-Dec-09 7:06 
AnswerRe: CheckedListBox state to property Pin
PIEBALDconsult8-Dec-09 7:32
mvePIEBALDconsult8-Dec-09 7:32 
AnswerRe: CheckedListBox state to property Pin
dan!sh 8-Dec-09 8:03
professional dan!sh 8-Dec-09 8:03 
QuestionRe: CheckedListBox state to property Pin
BDJones8-Dec-09 8:44
BDJones8-Dec-09 8:44 
AnswerRe: CheckedListBox state to property Pin
PIEBALDconsult8-Dec-09 10:30
mvePIEBALDconsult8-Dec-09 10:30 
AnswerRe: CheckedListBox state to property Pin
dan!sh 8-Dec-09 16:27
professional dan!sh 8-Dec-09 16:27 
Questionany other better way for window form to interact with excel? Pin
neodeaths8-Dec-09 4:39
neodeaths8-Dec-09 4:39 
AnswerRe: any other better way for window form to interact with excel? Pin
Giorgi Dalakishvili8-Dec-09 5:19
mentorGiorgi Dalakishvili8-Dec-09 5:19 
GeneralRe: any other better way for window form to interact with excel? Pin
neodeaths14-Dec-09 20:17
neodeaths14-Dec-09 20:17 
GeneralRe: any other better way for window form to interact with excel? Pin
Giorgi Dalakishvili15-Dec-09 5:19
mentorGiorgi Dalakishvili15-Dec-09 5:19 
QuestionDrop and redefine a type in a dynamic module ? Pin
Duncan Edwards Jones8-Dec-09 4:00
professionalDuncan Edwards Jones8-Dec-09 4:00 
AnswerRe: Drop and redefine a type in a dynamic module ? Pin
Luc Pattyn8-Dec-09 5:05
sitebuilderLuc Pattyn8-Dec-09 5:05 
GeneralRe: Drop and redefine a type in a dynamic module ? Pin
Duncan Edwards Jones8-Dec-09 7:10
professionalDuncan Edwards Jones8-Dec-09 7:10 
GeneralRe: Drop and redefine a type in a dynamic module ? Pin
Luc Pattyn8-Dec-09 7:47
sitebuilderLuc Pattyn8-Dec-09 7:47 
QuestionCommunication between .NET 2 Assemblies and .NET 3.5 Assemblies Pin
softwarejaeger8-Dec-09 3:09
softwarejaeger8-Dec-09 3:09 
AnswerRe: Communication between .NET 2 Assemblies and .NET 3.5 Assemblies Pin
Luc Pattyn8-Dec-09 5:08
sitebuilderLuc Pattyn8-Dec-09 5:08 

General General    News News    Suggestion Suggestion    Question Question    Bug Bug    Answer Answer    Joke Joke    Praise Praise    Rant Rant    Admin Admin   

Use Ctrl+Left/Right to switch messages, Ctrl+Up/Down to switch threads, Ctrl+Shift+Left/Right to switch pages.