Instantiating an IEnumerable array in C# -


i wondering why can in c#:

ienumerable<int>[] nums = new ienumerable<int>[10];

but cannot this:

ienumerable<int> nums = new ienumerable<int>();

what c# doing under hood first statement? thought couldn't create instances of interfaces new keyword.

the first statement creating new array of size 10 of item type ienumerable<int>. array concrete type can create.

to set item in array, this:

num[0] = new list<int>() {1,2,3}; 

although item type ienumerable<int>, cannot create instance of ienumerable<int>. have create instance of class implements ienumerable<int> list<int>.

in second example, try create instance of ienumerable<int> interface, i.e. not class, , not compile.

the variable type can still ienumerable<int>, have create instance of class implements ienumerable<int> this:

ienumerable<int> nums = new list<int>() {1,2,3}; 

Comments

Popular posts from this blog

php - Wordpress website dashboard page or post editor content is not showing but front end data is showing properly -

How to get the ip address of VM and use it to configure SSH connection dynamically in Ansible -

javascript - Get parameter of GET request -