Click here to Skip to main content
15,896,392 members
Home / Discussions / C#
   

C#

 
Questionhow i can run a dll Pin
wasimsharp25-Jun-08 0:22
wasimsharp25-Jun-08 0:22 
AnswerRe: how i can run a dll Pin
Christian Graus25-Jun-08 0:23
protectorChristian Graus25-Jun-08 0:23 
GeneralRe: how i can run a dll Pin
wasimsharp25-Jun-08 0:37
wasimsharp25-Jun-08 0:37 
GeneralRe: how i can run a dll Pin
Christian Graus25-Jun-08 0:45
protectorChristian Graus25-Jun-08 0:45 
AnswerRe: how i can run a dll Pin
Mbah Dhaim25-Jun-08 3:43
Mbah Dhaim25-Jun-08 3:43 
Questiontreeview and mdichild Pin
ginji2025-Jun-08 0:06
ginji2025-Jun-08 0:06 
AnswerRe: treeview and mdichild Pin
DaveyM6925-Jun-08 7:56
professionalDaveyM6925-Jun-08 7:56 
GeneralRe: treeview and mdichild [modified] Pin
ginji2025-Jun-08 15:15
ginji2025-Jun-08 15:15 
QuestionInterfaces and Casting - I'm struggling. Pin
stovesy24-Jun-08 23:57
stovesy24-Jun-08 23:57 
AnswerRe: Interfaces and Casting - I'm struggling. Pin
leppie25-Jun-08 2:11
leppie25-Jun-08 2:11 
GeneralRe: Interfaces and Casting - I'm struggling. Pin
stovesy25-Jun-08 2:27
stovesy25-Jun-08 2:27 
GeneralRe: Interfaces and Casting - I'm struggling. Pin
leppie25-Jun-08 4:51
leppie25-Jun-08 4:51 
GeneralRe: Interfaces and Casting - I'm struggling. Pin
stovesy25-Jun-08 5:33
stovesy25-Jun-08 5:33 
AnswerRe: Interfaces and Casting - I'm struggling. Pin
leppie25-Jun-08 4:54
leppie25-Jun-08 4:54 
GeneralRe: Interfaces and Casting - I'm struggling. Pin
stovesy25-Jun-08 5:36
stovesy25-Jun-08 5:36 
GeneralRe: Interfaces and Casting - I'm struggling. Pin
leppie25-Jun-08 5:43
leppie25-Jun-08 5:43 
GeneralRe: Interfaces and Casting - I'm struggling. Pin
stovesy25-Jun-08 5:54
stovesy25-Jun-08 5:54 
AnswerRe: Interfaces and Casting - I'm struggling. Pin
Mark Churchill25-Jun-08 15:35
Mark Churchill25-Jun-08 15:35 
Generics having full covariance is a common expectation, and I find the easiest way to explain it is to give a counter-example.

Say you have IBusinessObject< T > { IList< T > ListOfChildren; }.

So with our IBusinessObject< Customer > foo, we can .ListOfChildren and get a IList< Customer >.

Good so far.

Then if we could cast foo to IBusinessObject< object > - if we did .ListOfChildren we could have a IList< object >.

Still everything is peachy until we take that IList< object > and break type-safety by doing .Add(someRandomObject). We obviously can't actually Add any object to that IList, it must be a Customer. So IBusinessObject< object > is not an equivalent type.

IIRC the compiler can be nice to us and provides covariance in the case of a "read-only" generic type, identified by the type parameter being used for read-only properties, and return values only. IEnumerable< T > is probably one of these.

So in summary, IFactoryBase< Customer > cannot be cast to IFactoryBase< IBusinessObjectBase >, they are different types - it is specialized in dealing with Customers, not any IBusinessObjectBase. You might be able to get away with it if IFactoryBase< T > only uses T on the return side of it's members (like IEnumerable< T >), but I'm not sure if this behaviour is fully documented/guaranteed. (Check for me and reply? Wink | ;) )


GeneralRe: Interfaces and Casting - I'm struggling. Pin
stovesy25-Jun-08 22:07
stovesy25-Jun-08 22:07 
Questionfilesystemwatcher Pin
arkiboys24-Jun-08 23:39
arkiboys24-Jun-08 23:39 
AnswerRe: filesystemwatcher Pin
leppie25-Jun-08 2:17
leppie25-Jun-08 2:17 
AnswerRe: filesystemwatcher Pin
Michael Bookatz25-Jun-08 2:42
Michael Bookatz25-Jun-08 2:42 
QuestionRegex.Split with a pipe | as separator Pin
GDavy24-Jun-08 23:38
GDavy24-Jun-08 23:38 
AnswerRe: Regex.Split with a pipe | as separator Pin
Guffa25-Jun-08 0:09
Guffa25-Jun-08 0:09 
GeneralRe: Regex.Split with a pipe | as separator Pin
GDavy25-Jun-08 0:19
GDavy25-Jun-08 0:19 

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.