Looking for Critique of My Answers to Recent C# Multithreading Interview Questions...
-
Hi Everyone, No this is not a homework question; not even sure if this question belongs in here or if anyone has the time to have a look over these, but here's the situation: I was recently provided with 5 technical questions over eMail from a recruiter for a very large video game company for me to answer and return to the recruiter, who was supposed to call me and go over my answers but hasn't done so yet. So of course I'm getting paranoid as I sit waiting for some sort of response regarding my answers and so I thought, heck, why not post the questions and my answers somewhere here on CodeProject in the hopes that at least one of the mad experts in this community might have a few minutes just to read through my answers and critique them (I mean really let me have it if need be). I've been developing for a long time but you know how the interview process goes, every day that you have to wait for a response is agonizing and can cause you to start doubting yourself. So at the risk of this being in the wrong area of CP, here are the questions that I was given and the answers that I came up with (with a surprising minimum of Googling and any kind of word-for-word parroting of things that I've read and assimilated over the years): 1. In C#, what is an interface? An Interface in C# is a way to achieve polymorphism within modules so that similar classes that need to readily utilize methods implemented in other common classes can do so without having to incur the overhead of instantiating the other classes within themselves. Interfaces are type declarations that can contain collections of declarations of methods, events, properties and indexers without their implementations; the actual implementations are left to any class that chooses to implement that interface. And since interfaces are technically contracts guaranteeing that any class that implements said interface MUST contain actual implementations of each and every method, event, property and indexer declared in the interface (with identical signatures). Interfaces are a valuable way of making code extensible and introducing abstraction into multiple classes that have a need for executing common tasks with slightly different implementations. The Interface concept can be counter-productive if it declares any methods that are specific and relevant to only one class, as the purpose of the Interface is to eliminate redundant method implementations between more than one class that must use said method. This is why interfaces best
-
Hi Everyone, No this is not a homework question; not even sure if this question belongs in here or if anyone has the time to have a look over these, but here's the situation: I was recently provided with 5 technical questions over eMail from a recruiter for a very large video game company for me to answer and return to the recruiter, who was supposed to call me and go over my answers but hasn't done so yet. So of course I'm getting paranoid as I sit waiting for some sort of response regarding my answers and so I thought, heck, why not post the questions and my answers somewhere here on CodeProject in the hopes that at least one of the mad experts in this community might have a few minutes just to read through my answers and critique them (I mean really let me have it if need be). I've been developing for a long time but you know how the interview process goes, every day that you have to wait for a response is agonizing and can cause you to start doubting yourself. So at the risk of this being in the wrong area of CP, here are the questions that I was given and the answers that I came up with (with a surprising minimum of Googling and any kind of word-for-word parroting of things that I've read and assimilated over the years): 1. In C#, what is an interface? An Interface in C# is a way to achieve polymorphism within modules so that similar classes that need to readily utilize methods implemented in other common classes can do so without having to incur the overhead of instantiating the other classes within themselves. Interfaces are type declarations that can contain collections of declarations of methods, events, properties and indexers without their implementations; the actual implementations are left to any class that chooses to implement that interface. And since interfaces are technically contracts guaranteeing that any class that implements said interface MUST contain actual implementations of each and every method, event, property and indexer declared in the interface (with identical signatures). Interfaces are a valuable way of making code extensible and introducing abstraction into multiple classes that have a need for executing common tasks with slightly different implementations. The Interface concept can be counter-productive if it declares any methods that are specific and relevant to only one class, as the purpose of the Interface is to eliminate redundant method implementations between more than one class that must use said method. This is why interfaces best
The length and breadth of your answers are an example of why "Interview Question" articles are a complete waste of time. Nice job.
A guide to posting questions on CodeProject
Click this: Asking questions is a skill. Seriously, do it.
Dave Kreskowiak -
The length and breadth of your answers are an example of why "Interview Question" articles are a complete waste of time. Nice job.
A guide to posting questions on CodeProject
Click this: Asking questions is a skill. Seriously, do it.
Dave KreskowiakOK I guess I deserved that, should have known better... I was just hoping that someone could quickly assess whether or not the type of answers that I gave would even be considered in the ballpark as far as length and breadth, not regarding posting guidelines on CP, but for providing written answers to stupid interview questions in general. Sorry for any mental and emotional distress that I may have caused you and yours by not following the official proper etiquette, protocol, decorum, policy and/or procedure in my failed attempt to reach out to our community, and also for representing everything soulless and wrong. I shall now go place my head in a vice and begin turning the crank. Is there a recommended area of CP that might have some advice on how best to do this? Perhaps with enough searching I can find an Arduino article on wiring up servomotors to vice cranks so that I can automate the process... :sigh:
"... having only that moment finished a vigorous game of Wiff-Waff and eaten a tartiflet." - Henry Minute "Let's face it, after Monday and Tuesday, even the calendar says WTF!" - gavindon Programming is a race between programmers trying to build bigger and better idiot proof programs, and the universe trying to build bigger and better idiots, so far... the universe is winning. - gavindon
-
The length and breadth of your answers are an example of why "Interview Question" articles are a complete waste of time. Nice job.
A guide to posting questions on CodeProject
Click this: Asking questions is a skill. Seriously, do it.
Dave KreskowiakOK so here is a concise question that really drills-in on what I wanted to know in the first place and hopefully it won't be TLDR for anyone: Did I get the damn job or not? :laugh:
"... having only that moment finished a vigorous game of Wiff-Waff and eaten a tartiflet." - Henry Minute "Let's face it, after Monday and Tuesday, even the calendar says WTF!" - gavindon Programming is a race between programmers trying to build bigger and better idiot proof programs, and the universe trying to build bigger and better idiots, so far... the universe is winning. - gavindon
-
OK I guess I deserved that, should have known better... I was just hoping that someone could quickly assess whether or not the type of answers that I gave would even be considered in the ballpark as far as length and breadth, not regarding posting guidelines on CP, but for providing written answers to stupid interview questions in general. Sorry for any mental and emotional distress that I may have caused you and yours by not following the official proper etiquette, protocol, decorum, policy and/or procedure in my failed attempt to reach out to our community, and also for representing everything soulless and wrong. I shall now go place my head in a vice and begin turning the crank. Is there a recommended area of CP that might have some advice on how best to do this? Perhaps with enough searching I can find an Arduino article on wiring up servomotors to vice cranks so that I can automate the process... :sigh:
"... having only that moment finished a vigorous game of Wiff-Waff and eaten a tartiflet." - Henry Minute "Let's face it, after Monday and Tuesday, even the calendar says WTF!" - gavindon Programming is a race between programmers trying to build bigger and better idiot proof programs, and the universe trying to build bigger and better idiots, so far... the universe is winning. - gavindon
Deserve what? I was complimenting you on the accuracy and completeness of your answers. There are too many "Interview Question" articles here and all over the web that are written by idiots who think that's a good way to help someone get a job. They all suck because none of them go into the detail and understanding required to give the kind of answers that you gave.
A guide to posting questions on CodeProject
Click this: Asking questions is a skill. Seriously, do it.
Dave Kreskowiak -
OK so here is a concise question that really drills-in on what I wanted to know in the first place and hopefully it won't be TLDR for anyone: Did I get the damn job or not? :laugh:
"... having only that moment finished a vigorous game of Wiff-Waff and eaten a tartiflet." - Henry Minute "Let's face it, after Monday and Tuesday, even the calendar says WTF!" - gavindon Programming is a race between programmers trying to build bigger and better idiot proof programs, and the universe trying to build bigger and better idiots, so far... the universe is winning. - gavindon
Based on most of the people that I've had the displeasure of interviewing, you're in the top 5 to move on to the next round.
A guide to posting questions on CodeProject
Click this: Asking questions is a skill. Seriously, do it.
Dave Kreskowiak -
Deserve what? I was complimenting you on the accuracy and completeness of your answers. There are too many "Interview Question" articles here and all over the web that are written by idiots who think that's a good way to help someone get a job. They all suck because none of them go into the detail and understanding required to give the kind of answers that you gave.
A guide to posting questions on CodeProject
Click this: Asking questions is a skill. Seriously, do it.
Dave KreskowiakVery cool man... I was so ready for bad news that I read your answer wrong. Thank you so much for your compliments - very much appreciated today... I had a gut reaction that I had nailed the questions but it's been a little while since I've written so technically and I was proud of myself that all of that just kinda flowed out of me. You made my day; good end to a day full of productive job hunting and networking for once! I think I may be finally starting to get the hang of this after 23 years in the biz... Thanks Dave! Cheers!
"... having only that moment finished a vigorous game of Wiff-Waff and eaten a tartiflet." - Henry Minute "Let's face it, after Monday and Tuesday, even the calendar says WTF!" - gavindon Programming is a race between programmers trying to build bigger and better idiot proof programs, and the universe trying to build bigger and better idiots, so far... the universe is winning. - gavindon
-
Hi Everyone, No this is not a homework question; not even sure if this question belongs in here or if anyone has the time to have a look over these, but here's the situation: I was recently provided with 5 technical questions over eMail from a recruiter for a very large video game company for me to answer and return to the recruiter, who was supposed to call me and go over my answers but hasn't done so yet. So of course I'm getting paranoid as I sit waiting for some sort of response regarding my answers and so I thought, heck, why not post the questions and my answers somewhere here on CodeProject in the hopes that at least one of the mad experts in this community might have a few minutes just to read through my answers and critique them (I mean really let me have it if need be). I've been developing for a long time but you know how the interview process goes, every day that you have to wait for a response is agonizing and can cause you to start doubting yourself. So at the risk of this being in the wrong area of CP, here are the questions that I was given and the answers that I came up with (with a surprising minimum of Googling and any kind of word-for-word parroting of things that I've read and assimilated over the years): 1. In C#, what is an interface? An Interface in C# is a way to achieve polymorphism within modules so that similar classes that need to readily utilize methods implemented in other common classes can do so without having to incur the overhead of instantiating the other classes within themselves. Interfaces are type declarations that can contain collections of declarations of methods, events, properties and indexers without their implementations; the actual implementations are left to any class that chooses to implement that interface. And since interfaces are technically contracts guaranteeing that any class that implements said interface MUST contain actual implementations of each and every method, event, property and indexer declared in the interface (with identical signatures). Interfaces are a valuable way of making code extensible and introducing abstraction into multiple classes that have a need for executing common tasks with slightly different implementations. The Interface concept can be counter-productive if it declares any methods that are specific and relevant to only one class, as the purpose of the Interface is to eliminate redundant method implementations between more than one class that must use said method. This is why interfaces best
TLDR Anyone that sends you interview questions over email is wasting their time and yours as it gives you ample opportunity to get the answers from elsewhere, it is no indication of your knowledge. The only possible reason I could think of to do this would be to google the answers I get back to see if the answers have been copied from the web for not. But do I want to work for someone who is more concerned with how Machiavellian I am than my technical abilities? If, however, this is a genuine way of assessing people then there is a high chance you will be working alongside people whose idea of "coding" is to copy and paste the requirements of any task they are given in to a question on CP along with "plz send codez its urgent".
-
Hi Everyone, No this is not a homework question; not even sure if this question belongs in here or if anyone has the time to have a look over these, but here's the situation: I was recently provided with 5 technical questions over eMail from a recruiter for a very large video game company for me to answer and return to the recruiter, who was supposed to call me and go over my answers but hasn't done so yet. So of course I'm getting paranoid as I sit waiting for some sort of response regarding my answers and so I thought, heck, why not post the questions and my answers somewhere here on CodeProject in the hopes that at least one of the mad experts in this community might have a few minutes just to read through my answers and critique them (I mean really let me have it if need be). I've been developing for a long time but you know how the interview process goes, every day that you have to wait for a response is agonizing and can cause you to start doubting yourself. So at the risk of this being in the wrong area of CP, here are the questions that I was given and the answers that I came up with (with a surprising minimum of Googling and any kind of word-for-word parroting of things that I've read and assimilated over the years): 1. In C#, what is an interface? An Interface in C# is a way to achieve polymorphism within modules so that similar classes that need to readily utilize methods implemented in other common classes can do so without having to incur the overhead of instantiating the other classes within themselves. Interfaces are type declarations that can contain collections of declarations of methods, events, properties and indexers without their implementations; the actual implementations are left to any class that chooses to implement that interface. And since interfaces are technically contracts guaranteeing that any class that implements said interface MUST contain actual implementations of each and every method, event, property and indexer declared in the interface (with identical signatures). Interfaces are a valuable way of making code extensible and introducing abstraction into multiple classes that have a need for executing common tasks with slightly different implementations. The Interface concept can be counter-productive if it declares any methods that are specific and relevant to only one class, as the purpose of the Interface is to eliminate redundant method implementations between more than one class that must use said method. This is why interfaces best
So you understand the meaning of a few technical terms. Or do you? Much of what you have written reads (to me) like marketing speak, and gives no real indication of whether you understand what you have written, or whether you just copied it from the internet. And your answers are much too long. Remember, recruiters will be faced with a pile of applications and the first thing they do is throw out all the ones that are unreadable, then the ones that take too long to read.
-
TLDR Anyone that sends you interview questions over email is wasting their time and yours as it gives you ample opportunity to get the answers from elsewhere, it is no indication of your knowledge. The only possible reason I could think of to do this would be to google the answers I get back to see if the answers have been copied from the web for not. But do I want to work for someone who is more concerned with how Machiavellian I am than my technical abilities? If, however, this is a genuine way of assessing people then there is a high chance you will be working alongside people whose idea of "coding" is to copy and paste the requirements of any task they are given in to a question on CP along with "plz send codez its urgent".
F-ES Sitecore wrote:
If, however, this is a genuine way of assessing people then there is a high chance you will be working alongside people whose idea of "coding" is to copy and paste the requirements of any task they are given in to a question on CP along with "plz send codez its urgent".
:laugh: Well said... I agree completely about everything you're saying, I've been on the giving and the receiving end of phone and personal technical interviews for years and so yes the whole philosophy of them irks my craw in the first place... Thanks for the feedback, I appreciate it...
"... having only that moment finished a vigorous game of Wiff-Waff and eaten a tartiflet." - Henry Minute "Let's face it, after Monday and Tuesday, even the calendar says WTF!" - gavindon Programming is a race between programmers trying to build bigger and better idiot proof programs, and the universe trying to build bigger and better idiots, so far... the universe is winning. - gavindon
-
So you understand the meaning of a few technical terms. Or do you? Much of what you have written reads (to me) like marketing speak, and gives no real indication of whether you understand what you have written, or whether you just copied it from the internet. And your answers are much too long. Remember, recruiters will be faced with a pile of applications and the first thing they do is throw out all the ones that are unreadable, then the ones that take too long to read.
OK thanks man, excellent food for thought on my part... I really appreciate the honest criticism/advice buddy... Cheers!
"... having only that moment finished a vigorous game of Wiff-Waff and eaten a tartiflet." - Henry Minute "Let's face it, after Monday and Tuesday, even the calendar says WTF!" - gavindon Programming is a race between programmers trying to build bigger and better idiot proof programs, and the universe trying to build bigger and better idiots, so far... the universe is winning. - gavindon
-
Hi Everyone, No this is not a homework question; not even sure if this question belongs in here or if anyone has the time to have a look over these, but here's the situation: I was recently provided with 5 technical questions over eMail from a recruiter for a very large video game company for me to answer and return to the recruiter, who was supposed to call me and go over my answers but hasn't done so yet. So of course I'm getting paranoid as I sit waiting for some sort of response regarding my answers and so I thought, heck, why not post the questions and my answers somewhere here on CodeProject in the hopes that at least one of the mad experts in this community might have a few minutes just to read through my answers and critique them (I mean really let me have it if need be). I've been developing for a long time but you know how the interview process goes, every day that you have to wait for a response is agonizing and can cause you to start doubting yourself. So at the risk of this being in the wrong area of CP, here are the questions that I was given and the answers that I came up with (with a surprising minimum of Googling and any kind of word-for-word parroting of things that I've read and assimilated over the years): 1. In C#, what is an interface? An Interface in C# is a way to achieve polymorphism within modules so that similar classes that need to readily utilize methods implemented in other common classes can do so without having to incur the overhead of instantiating the other classes within themselves. Interfaces are type declarations that can contain collections of declarations of methods, events, properties and indexers without their implementations; the actual implementations are left to any class that chooses to implement that interface. And since interfaces are technically contracts guaranteeing that any class that implements said interface MUST contain actual implementations of each and every method, event, property and indexer declared in the interface (with identical signatures). Interfaces are a valuable way of making code extensible and introducing abstraction into multiple classes that have a need for executing common tasks with slightly different implementations. The Interface concept can be counter-productive if it declares any methods that are specific and relevant to only one class, as the purpose of the Interface is to eliminate redundant method implementations between more than one class that must use said method. This is why interfaces best
-
Hi Everyone, No this is not a homework question; not even sure if this question belongs in here or if anyone has the time to have a look over these, but here's the situation: I was recently provided with 5 technical questions over eMail from a recruiter for a very large video game company for me to answer and return to the recruiter, who was supposed to call me and go over my answers but hasn't done so yet. So of course I'm getting paranoid as I sit waiting for some sort of response regarding my answers and so I thought, heck, why not post the questions and my answers somewhere here on CodeProject in the hopes that at least one of the mad experts in this community might have a few minutes just to read through my answers and critique them (I mean really let me have it if need be). I've been developing for a long time but you know how the interview process goes, every day that you have to wait for a response is agonizing and can cause you to start doubting yourself. So at the risk of this being in the wrong area of CP, here are the questions that I was given and the answers that I came up with (with a surprising minimum of Googling and any kind of word-for-word parroting of things that I've read and assimilated over the years): 1. In C#, what is an interface? An Interface in C# is a way to achieve polymorphism within modules so that similar classes that need to readily utilize methods implemented in other common classes can do so without having to incur the overhead of instantiating the other classes within themselves. Interfaces are type declarations that can contain collections of declarations of methods, events, properties and indexers without their implementations; the actual implementations are left to any class that chooses to implement that interface. And since interfaces are technically contracts guaranteeing that any class that implements said interface MUST contain actual implementations of each and every method, event, property and indexer declared in the interface (with identical signatures). Interfaces are a valuable way of making code extensible and introducing abstraction into multiple classes that have a need for executing common tasks with slightly different implementations. The Interface concept can be counter-productive if it declares any methods that are specific and relevant to only one class, as the purpose of the Interface is to eliminate redundant method implementations between more than one class that must use said method. This is why interfaces best
Quick reactions: 0. overall: your answers are thoughtful and detailed, but I agree with other respondents here who have questioned the meaningfulness of the process. 1. Interfaces
"a way to achieve polymorphism within modules so that similar classes that need to readily utilize methods implemented in other common classes can do so without having to incur the overhead of instantiating the other classes within themselves."
This seems "off" to me: specifically, this seems to imply an interface actually provides reusable something-or-other, and it most definitely does not. An abstract class, however, does "provide." cheers, Bill
«I want to stay as close to the edge as I can without going over. Out on the edge you see all kinds of things you can't see from the center» Kurt Vonnegut.
-
Eddy Vluggen wrote:
I'd say you have a managed mind :)
:laugh: heheh! You are implying, kind sir, that my mind is part of some kind of Common Language Runtime; which troubles me because I never really considered my hopes, dreams and most innermost naissance-laden tendernesses in the context of being symbolically reduced to some sort of IL with all of the resulting compiler directives and localizations and identifiers and what-not. But I refuse to be bytecode... So I endeavor to control and comply. I'm trying to dig deeply and greedily like Gloin and the Dwarve-lords, lower and lower into the hardware layer until I smote a Balrog or at least prove that a dry cell can power a light bulb in series. Thanks in advance for your support all!
"... having only that moment finished a vigorous game of Wiff-Waff and eaten a tartiflet." - Henry Minute "Let's face it, after Monday and Tuesday, even the calendar says WTF!" - gavindon Programming is a race between programmers trying to build bigger and better idiot proof programs, and the universe trying to build bigger and better idiots, so far... the universe is winning. - gavindon
-
Quick reactions: 0. overall: your answers are thoughtful and detailed, but I agree with other respondents here who have questioned the meaningfulness of the process. 1. Interfaces
"a way to achieve polymorphism within modules so that similar classes that need to readily utilize methods implemented in other common classes can do so without having to incur the overhead of instantiating the other classes within themselves."
This seems "off" to me: specifically, this seems to imply an interface actually provides reusable something-or-other, and it most definitely does not. An abstract class, however, does "provide." cheers, Bill
«I want to stay as close to the edge as I can without going over. Out on the edge you see all kinds of things you can't see from the center» Kurt Vonnegut.
BillWoodruff wrote:
0. overall: your answers are thoughtful and detailed, but I agree with other respondents here who have questioned the meaningfulness of the process
0. Thank you Bill for your positive feedback on my answers. I also agree with anyone who will question the meaningfulness of the current interview process; I've been on the giving as well as receiving end of technical interviews and I know for a fact that any one of us 12 millions CP'ers could easily right now come up with some obscure programming questions for a technical interview that would be so specific that not a single one of the other 12 million members would be able to answer in their right minds.
BillWoodruff wrote:
1. This seems "off" to me: specifically, this seems to imply an interface actually provides reusable something-or-other, and it most definitely does not. An abstract class, however, does "provide."
Thanks Bill I appreciate the schooling on this... Methinks I need to readdress this whole area of my understanding of interfaces vs. abstract classes vs. virtual classes/methods Thanks CPians for failing to disappoint as usual... Cheers!
"... having only that moment finished a vigorous game of Wiff-Waff and eaten a tartiflet." - Henry Minute "Let's face it, after Monday and Tuesday, even the calendar says WTF!" - gavindon Programming is a race between programmers trying to build bigger and better idiot proof programs, and the universe trying to build bigger and better idiots, so far... the universe is winning. - gavindon
-
BillWoodruff wrote:
0. overall: your answers are thoughtful and detailed, but I agree with other respondents here who have questioned the meaningfulness of the process
0. Thank you Bill for your positive feedback on my answers. I also agree with anyone who will question the meaningfulness of the current interview process; I've been on the giving as well as receiving end of technical interviews and I know for a fact that any one of us 12 millions CP'ers could easily right now come up with some obscure programming questions for a technical interview that would be so specific that not a single one of the other 12 million members would be able to answer in their right minds.
BillWoodruff wrote:
1. This seems "off" to me: specifically, this seems to imply an interface actually provides reusable something-or-other, and it most definitely does not. An abstract class, however, does "provide."
Thanks Bill I appreciate the schooling on this... Methinks I need to readdress this whole area of my understanding of interfaces vs. abstract classes vs. virtual classes/methods Thanks CPians for failing to disappoint as usual... Cheers!
"... having only that moment finished a vigorous game of Wiff-Waff and eaten a tartiflet." - Henry Minute "Let's face it, after Monday and Tuesday, even the calendar says WTF!" - gavindon Programming is a race between programmers trying to build bigger and better idiot proof programs, and the universe trying to build bigger and better idiots, so far... the universe is winning. - gavindon
I can't claim to be at a "guru level" on choosing whether to use "standard," or virtual, or abstract classes, and using your choice of those with interface definitions. It took me a long time to "grok" that on one level using interfaces was a contract, a compile-time enforced promise that any object that inherited from the interface implemented every specification in the interface ... and, that interfaces also functioned as a way to establish a kind of "semantic viewport" on objects, so you could expose an object instance "filtered" in a carefully controlled way by passing it cast to the interface. Later, when I discovered that you can use generics with interfaces, that interfaces can inherit from interfaces ... well, I'm still digesting that :) I'm still looking (eagerly) for wisdom in terms of best practices in OO design; and I doubt I'll ever quit looking. cheers, Bill
«I want to stay as close to the edge as I can without going over. Out on the edge you see all kinds of things you can't see from the center» Kurt Vonnegut.
-
Eddy Vluggen wrote:
I'd say you have a managed mind :)
:laugh: heheh! You are implying, kind sir, that my mind is part of some kind of Common Language Runtime; which troubles me because I never really considered my hopes, dreams and most innermost naissance-laden tendernesses in the context of being symbolically reduced to some sort of IL with all of the resulting compiler directives and localizations and identifiers and what-not. But I refuse to be bytecode... So I endeavor to control and comply. I'm trying to dig deeply and greedily like Gloin and the Dwarve-lords, lower and lower into the hardware layer until I smote a Balrog or at least prove that a dry cell can power a light bulb in series. Thanks in advance for your support all!
"... having only that moment finished a vigorous game of Wiff-Waff and eaten a tartiflet." - Henry Minute "Let's face it, after Monday and Tuesday, even the calendar says WTF!" - gavindon Programming is a race between programmers trying to build bigger and better idiot proof programs, and the universe trying to build bigger and better idiots, so far... the universe is winning. - gavindon
clientSurfer wrote:
You are implying, kind sir, that my mind is part of some kind of Common Language Runtime
No, since only the strings of Microsoft are part of the CLR :) I prefer to escalate these kind of questions; having the answer is one thing, seeing consequences another.
Bastard Programmer from Hell :suss: If you can't read my code, try converting it here[^][](X-Clacks-Overhead: GNU Terry Pratchett)
-
clientSurfer wrote:
You are implying, kind sir, that my mind is part of some kind of Common Language Runtime
No, since only the strings of Microsoft are part of the CLR :) I prefer to escalate these kind of questions; having the answer is one thing, seeing consequences another.
Bastard Programmer from Hell :suss: If you can't read my code, try converting it here[^][](X-Clacks-Overhead: GNU Terry Pratchett)
:laugh: Then I'm guessing I must have a short between my seat and keyboard :doh:
"... having only that moment finished a vigorous game of Wiff-Waff and eaten a tartiflet." - Henry Minute "Let's face it, after Monday and Tuesday, even the calendar says WTF!" - gavindon Programming is a race between programmers trying to build bigger and better idiot proof programs, and the universe trying to build bigger and better idiots, so far... the universe is winning. - gavindon
-
I can't claim to be at a "guru level" on choosing whether to use "standard," or virtual, or abstract classes, and using your choice of those with interface definitions. It took me a long time to "grok" that on one level using interfaces was a contract, a compile-time enforced promise that any object that inherited from the interface implemented every specification in the interface ... and, that interfaces also functioned as a way to establish a kind of "semantic viewport" on objects, so you could expose an object instance "filtered" in a carefully controlled way by passing it cast to the interface. Later, when I discovered that you can use generics with interfaces, that interfaces can inherit from interfaces ... well, I'm still digesting that :) I'm still looking (eagerly) for wisdom in terms of best practices in OO design; and I doubt I'll ever quit looking. cheers, Bill
«I want to stay as close to the edge as I can without going over. Out on the edge you see all kinds of things you can't see from the center» Kurt Vonnegut.
BillWoodruff wrote:
I can't claim to be at a "guru level" on choosing whether to use "standard," or virtual, or abstract classes, and using your choice of those with interface definitions.
Wow that's actually saying a lot and is somehow comforting to me considering your impressive background and experience Bill! :)
BillWoodruff wrote:
It took me a long time to "grok" that on one level using interfaces was a contract, a compile-time enforced promise that any object that inherited from the interface implemented every specification in the interface ... and, that interfaces also functioned as a way to establish a kind of "semantic viewport" on objects, so you could expose an object instance "filtered" in a carefully controlled way by passing it cast to the interface.
... never thought about the "semantic viewport" offered by interfaces; more appreciated food for thought you have provided me here... :cool:
BillWoodruff wrote:
I'm still looking (eagerly) for wisdom in terms of best practices in OO design; and I doubt I'll ever quit looking.
Neat quote and well said, Bill - an encouraging thought that promises to inspire me today in my grok quest (hmm "Grok Quest" - that almost sounds like a good name for a bad video game, yes?) :-D Thanks Man, Cheers!
"... having only that moment finished a vigorous game of Wiff-Waff and eaten a tartiflet." - Henry Minute "Let's face it, after Monday and Tuesday, even the calendar says WTF!" - gavindon "I'm still looking (eagerly) for wisdom in terms of best practices in OO design; and I doubt I'll ever quit looking." - BillWoodruff "Programming is a race between programmers trying to build bigger and better idiot proof programs, and the universe trying to build bigger and better idiots, so far... the universe is winning." - gavindon