Hi,

 

I’ve been moving my apps from IP 1 Beta 7 to IP 1 RC1.

I have not tested them completely, but I ran into the fact that automatic conversion from list to array was removed.

 

If I remember right, the reason is that a C#  function receiving an array param may alter it.

If a tuple is passed rather than an array, the user would not expect the tuple to be altered.

 

- Is there a fundamental reason why the function could not update the contents of the list offered to it?

- If not, couldn’t some kind of optional ('strict' option) warning be generated rather than prohibiting automatic conversion?

- Are you sure most Python programmers know enough about Python "passing references by value" to be aware that the function could not replace the tuple by a new instance (I tought some Python courses and my students, originally coming from C++, are always baffled by that, even after multiple years of Python experience)?

 

 

One of the places where I use automatic conversion is:

 

listViewItemsBuffer = []

 

for ... :

      listViewItemsBuffer.append (listViewItem)

 

listViewItems.AddRange (listViewItemsBuffer)

 

 

The alternatives are:

 

 

1. listViewItems.AddRange (tuple (listViewItemsBuffer))

 

Will probably create a third, redundant, copy of the long list of pointers involved each time its called

 

 

2. listViewItems.AddRange (System.Array [Forms.ListViewItem] (listViewItemsBuffer))

 

Verbose (One of the things about Python programs is that they are much shorter than their C# equivalents)

 

 

Well I guess you guys will have discussed this extensively.

Still I'd like to share the above thoughts with you.

 

 

Kind regards

 

J. de Hooge

[EMAIL PROTECTED]

 

 

_______________________________________________
users mailing list
[email protected]
http://lists.ironpython.com/listinfo.cgi/users-ironpython.com

Reply via email to