KnowledgeHub
Questions
Tags
Users
Search
Alex Rivera
|
Logout
Edit Question
Title
Body
Why can't I use the array initializer with an implicitly typed variable? string[] words = { "apple", "strawberry", "grape" }; // legal string[] words = new string[]{ "apple", "strawberry", "grape" }; // legal var words = new []{ "apple", "strawberry", "grape" }; // legal var words = new string[]{ "apple", "strawberry", "grape" }; // legal var words = { "apple", "strawberry", "grape", "peach" }; // ILLEGAL Is there a technical reason for this limitation? Why can't it infer the type like it would for: var number = 10; var text = "Hello"; The compiler clearly knows what I am trying to do, it just won't allow it: CS0820: Cannot assign array initializer to an implicitly typed local Update: I compiled a program using the four legal array declaration methods, and it generates the same IL: http://pastebin.com/28JDAFbL This just adds to my confusion. And "it is like this because the spec says so" is of little help. Why is the spec like this? What is the rationale here?
Tags (comma-separated)
Save Edits
Cancel