About

I am a software developer in Seattle, building a new AI software company.

Ads

August 2009

Sun Mon Tue Wed Thu Fri Sat
            1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31          

Ads


« Mathematica | Main | Seattle Developer Events »

April 19, 2009

TrackBack

TrackBack URL for this entry:
http://www.typepad.com/services/trackback/6a00d8345242f069e201156f364ff2970c

Listed below are links to weblogs that reference IL Features Missing in C#:

Comments

Patrick Smacchia

So what are your current work Wes? Is NStatic still in the pipe?

Another cool IL thing C# doesn't have: the visibility level: internal AND protected (we currently only have internal OR protected)

Another one:the possibility to base enum on a float or double.

Wes

Patrick, I spoke at Lang.NET last week. The video should be out, although there is no demo.

Daniel Earwicker

The other biggie is exception filters. VB.NET exposes them, C# doesn't, and the BCL uses them internally (by writing a helper in VB.NET).

Steven

@Daniel,

I wouldn’t say that C# ‘misses’ exception filters. Besides, they present subtleties of their own. Exceptions thrown from a filter (i.e.: with NullReferenceExceptions) are swallowed and the filter evaluates as false.

Jack

Do you try Reflector?

Wes

Regarding reflector,
http://geekswithblogs.net/jwhitehorn/archive/2007/06/06/113060.aspx

While using reflector, I haven't seen a case where the tail call prefix has been used in the IL generated by C#; and there are many such instances where that would be possible (for example, a void function which is the last statement of a calling void function).

The C# PM Luke Hoban incorrectly states that there are few instances where the tail call would be applied in practice; I believe that he may simply be thinking of tail recursion.

https://connect.microsoft.com/VisualStudio/feedback/ViewFeedback.aspx?FeedbackID=166013&wa=wsignin1.0

Daniel Earwicker

@Steven: "I wouldn’t say that C# ‘misses’ exception filters."

It seems the BCL team disagrees with you, then! I certainly do. There is no fundamental reason why it makes sense to only filter exceptions by their location in an inheritance hierarchy, especially with the limitation of single inheritance and the fact that the BCL has no rational hierarchy to its exceptions (nor is there necessarily any way to impose one even if you began from scratch).

Obviously it is necessary to define sensible behaviour for filters if they throw - this does not in any way change their essential usefulness when they don't.

Verify your Comment

Previewing your Comment

This is only a preview. Your comment has not yet been posted.

Working...
Your comment could not be posted. Error type:
Your comment has been posted. Post another comment

The letters and numbers you entered did not match the image. Please try again.

As a final step before posting your comment, enter the letters and numbers you see in the image below. This prevents automated programs from posting comments.

Having trouble reading this image? View an alternate.

Working...

Post a comment