Click here to Skip to main content
15,891,704 members
Home / Discussions / C#
   

C#

 
GeneralRe: Can't catch NullReferenceException while explicitly defined for that Pin
Exoskeletor2-Oct-21 3:01
Exoskeletor2-Oct-21 3:01 
GeneralRe: Can't catch NullReferenceException while explicitly defined for that Pin
Pete O'Hanlon2-Oct-21 3:51
mvePete O'Hanlon2-Oct-21 3:51 
GeneralRe: Can't catch NullReferenceException while explicitly defined for that Pin
OriginalGriff2-Oct-21 3:55
mveOriginalGriff2-Oct-21 3:55 
GeneralRe: Can't catch NullReferenceException while explicitly defined for that Pin
Exoskeletor2-Oct-21 3:58
Exoskeletor2-Oct-21 3:58 
GeneralRe: Can't catch NullReferenceException while explicitly defined for that Pin
Exoskeletor2-Oct-21 2:58
Exoskeletor2-Oct-21 2:58 
AnswerRe: Can't catch NullReferenceException while explicitly defined for that Pin
Pete O'Hanlon3-Oct-21 20:22
mvePete O'Hanlon3-Oct-21 20:22 
GeneralRe: Can't catch NullReferenceException while explicitly defined for that Pin
Exoskeletor4-Oct-21 0:21
Exoskeletor4-Oct-21 0:21 
Questionhow read file from Open with in C# Pin
Member 1522978130-Sep-21 6:24
Member 1522978130-Sep-21 6:24 
AnswerRe: how read file from Open with in C# Pin
Dave Kreskowiak30-Sep-21 8:08
mveDave Kreskowiak30-Sep-21 8:08 
AnswerRe: how read file from Open with in C# Pin
Luc Pattyn30-Sep-21 8:30
sitebuilderLuc Pattyn30-Sep-21 8:30 
QuestionQuestion About Async Pin
Kevin Marois29-Sep-21 10:21
professionalKevin Marois29-Sep-21 10:21 
AnswerRe: Question About Async Pin
Pete O'Hanlon29-Sep-21 20:22
mvePete O'Hanlon29-Sep-21 20:22 
GeneralRe: Question About Async Pin
Kevin Marois30-Sep-21 4:24
professionalKevin Marois30-Sep-21 4:24 
GeneralRe: Question About Async Pin
Richard Deeming30-Sep-21 4:41
mveRichard Deeming30-Sep-21 4:41 
GeneralRe: Question About Async Pin
Kevin Marois30-Sep-21 4:48
professionalKevin Marois30-Sep-21 4:48 
GeneralRe: Question About Async Pin
Richard Deeming30-Sep-21 5:05
mveRichard Deeming30-Sep-21 5:05 
GeneralRe: Question About Async Pin
Kevin Marois30-Sep-21 5:20
professionalKevin Marois30-Sep-21 5:20 
AnswerRe: Question About Async Pin
Richard Deeming29-Sep-21 21:54
mveRichard Deeming29-Sep-21 21:54 
GeneralRe: Question About Async Pin
Kevin Marois30-Sep-21 4:23
professionalKevin Marois30-Sep-21 4:23 
QuestionMakeGenericType/CreateInstance Object to underlying Type at run-time: why this works is driving me crazy Pin
BillWoodruff28-Sep-21 5:45
professionalBillWoodruff28-Sep-21 5:45 
AnswerRe: MakeGenericType/CreateInstance Object to underlying Type at run-time: why this works is driving me crazy Pin
Richard Deeming28-Sep-21 6:20
mveRichard Deeming28-Sep-21 6:20 
GeneralRe: MakeGenericType/CreateInstance Object to underlying Type at run-time: why this works is driving me crazy Pin
BillWoodruff28-Sep-21 9:47
professionalBillWoodruff28-Sep-21 9:47 
AnswerRe: MakeGenericType/CreateInstance Object to underlying Type at run-time: why this works is driving me crazy Pin
OriginalGriff28-Sep-21 6:30
mveOriginalGriff28-Sep-21 6:30 
Dynamic types skip all compile time checking in favour of runtime checking - that includes method names, return types, number of parameters, type of parameters, or even that the method exists at all.

So because the return value is declared as dynamic, the compiler doesn't care what you try to call - and at run time the checks are done and the right method is called.
Try it:
C#
dynamic items = new List<string>();
items.Add("Hello");
items.Add("World");
Console.WriteLine(string.Join(" ", items));
items.FallOverAndDie();
Will give you:
Hello World
Unhandled exception. Microsoft.CSharp.RuntimeBinder.RuntimeBinderException: 'System.Collections.Generic.List<string>' does not contain a definition for 'FallOverAndDie'
   at CallSite.Target(Closure , CallSite , Object )
   at System.Dynamic.UpdateDelegates.UpdateAndExecuteVoid1[T0](CallSite site, T0 arg0)
   at Program.Main(String[] args)
Because the collection does not contain a FallOverAndDie method.
C#
dynamic items = new List<string>();
items.Add("Hello");
items.Add("World");
Console.WriteLine(string.Join(" ", items));
items = new Dictionary<int, int>();
items.Add("Hello");
items.Add("World");
Console.WriteLine(string.Join(" ", items));
Will fail because the Dictionary class has no overload with just one parameter.

Personally, I'm still not convinced that adding dynamic to the language was a good idea - it seems too much like a way to move compile time errors to runtime and break strong typing ...
"I have no idea what I did, but I'm taking full credit for it." - ThisOldTony
"Common sense is so rare these days, it should be classified as a super power" - Random T-shirt
AntiTwitter: @DalekDave is now a follower!

GeneralRe: MakeGenericType/CreateInstance Object to underlying Type at run-time: why this works is driving me crazy Pin
BillWoodruff28-Sep-21 10:19
professionalBillWoodruff28-Sep-21 10:19 
GeneralRe: MakeGenericType/CreateInstance Object to underlying Type at run-time: why this works is driving me crazy Pin
OriginalGriff28-Sep-21 10:40
mveOriginalGriff28-Sep-21 10:40 

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.