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

C#

 
QuestionWhy am I not allowed to do this with events Pin
Keith Barrow9-Oct-20 1:20
professionalKeith Barrow9-Oct-20 1:20 
This is a genuine "why" question (as in the technical reason why the language prohibits what I want to do) rather than a "how do I get round the limitation?"*

I'm writing a WPF app and implementing a base class for a Command. The base implementation contains common logic to a set of subclasses which must have the Database connection in a non-busy state before they can execute. If the busy state changes, calling CanExecuteChanged?.Invoke(this, e); is naturally fine in this base. The problem is I have secondary conditions in the subclasses which also prevent execution - on those conditiond changing I'd want to call CanExecuteChanged?.Invoke(this, e); from the subclass - this isn't allowed and I can't work out the reasoning.

My current working theory is the even is like syntactic sugar over a delegates (or something) and the part to raise the event is private (which would prevent raising outside the base class) the whereas the subscription side is public (so you can subscribe from an unrelated type).That doesn't explain why the "raise" part isn't protected, or somehow optionally private/protected. There is a gap in my knowledge somewhere.
  • I have a couple of solutions for this: like exposing the delegate with a backing field and calling that, or the one I'll probably adopt which is to expose a protected event to raise the event seems more explicit.
KeithBarrow.net[^] - It might not be very good, but at least it is free!

AnswerRe: Why am I not allowed to do this with events Pin
Richard Deeming9-Oct-20 2:12
mveRichard Deeming9-Oct-20 2:12 
GeneralRe: Why am I not allowed to do this with events Pin
Keith Barrow9-Oct-20 3:19
professionalKeith Barrow9-Oct-20 3:19 
QuestionHow to read from serial port until timeout of no more data received? Pin
td17768-Oct-20 13:27
td17768-Oct-20 13:27 
AnswerRe: How to read from serial port until timeout of no more data received? Pin
Luc Pattyn8-Oct-20 14:27
sitebuilderLuc Pattyn8-Oct-20 14:27 
GeneralRe: How to read from serial port until timeout of no more data received? Pin
td17768-Oct-20 15:36
td17768-Oct-20 15:36 
GeneralRe: How to read from serial port until timeout of no more data received? Pin
Luc Pattyn9-Oct-20 1:25
sitebuilderLuc Pattyn9-Oct-20 1:25 
AnswerRe: How to read from serial port until timeout of no more data received? Pin
Gerry Schmitz8-Oct-20 18:27
mveGerry Schmitz8-Oct-20 18:27 
GeneralRe: How to read from serial port until timeout of no more data received? Pin
td17769-Oct-20 11:16
td17769-Oct-20 11:16 
GeneralRe: How to read from serial port until timeout of no more data received? Pin
Gerry Schmitz9-Oct-20 14:10
mveGerry Schmitz9-Oct-20 14:10 
AnswerRe: How to read from serial port until timeout of no more data received? Pin
Richard MacCutchan8-Oct-20 22:55
mveRichard MacCutchan8-Oct-20 22:55 
AnswerMy (temporary?) solution Pin
td17769-Oct-20 11:25
td17769-Oct-20 11:25 
QuestionCOM exception loss Pin
Member 126326017-Oct-20 20:57
Member 126326017-Oct-20 20:57 
AnswerRe: COM exception loss Pin
Richard MacCutchan7-Oct-20 21:35
mveRichard MacCutchan7-Oct-20 21:35 
GeneralRe: COM exception loss Pin
Member 126326017-Oct-20 22:03
Member 126326017-Oct-20 22:03 
GeneralRe: COM exception loss Pin
Richard MacCutchan7-Oct-20 22:25
mveRichard MacCutchan7-Oct-20 22:25 
GeneralRe: COM exception loss Pin
Member 126326017-Oct-20 22:58
Member 126326017-Oct-20 22:58 
GeneralRe: COM exception loss Pin
Richard MacCutchan7-Oct-20 23:24
mveRichard MacCutchan7-Oct-20 23:24 
AnswerRe: COM exception loss Pin
OriginalGriff8-Oct-20 4:10
mveOriginalGriff8-Oct-20 4:10 
QuestionScanning for servers Pin
pkfox4-Oct-20 21:52
professionalpkfox4-Oct-20 21:52 
AnswerRe: Scanning for servers Pin
Richard Deeming5-Oct-20 2:44
mveRichard Deeming5-Oct-20 2:44 
GeneralRe: Scanning for servers Pin
pkfox5-Oct-20 3:44
professionalpkfox5-Oct-20 3:44 
GeneralRe: Scanning for servers Pin
pkfox5-Oct-20 4:17
professionalpkfox5-Oct-20 4:17 
Questionversion mismatch Pin
Member 149246074-Oct-20 9:30
Member 149246074-Oct-20 9:30 
AnswerRe: version mismatch Pin
Richard Deeming5-Oct-20 2:33
mveRichard Deeming5-Oct-20 2:33 

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.