2. Programming with IronPython c. Using .NET from Python * Importing How Python import corresponds/differs C# using directive. (C# using works like Python from ... import *!) * Assembly loading How to load .NET assemblies, continuing the previos section. (Include all variants of clr.AddReference* and discuss strong names? Maybe too boring and slow-going. I will do this for impnotes though.) * Basic class usage Instantiating classes. Constants, fields, properties. (Well, they all look same from the Python side, but...) Include how .NET properties map to Python properties and descriptors? Too arcane. Introduce GetValue/SetValue shortcut here? Maybe later. Will be in impnotes though. * Type conversion How Python types are automatically converted to .NET types. (I don't have the whole picture. Needs research.) * Using help() Online help. Automatically generated docstrings. * Calling methods Calling methods. Output and reference parameters returned as tuple. Using clr.Reference. Boxing and value type quirk. * More calling methods Overloaded methods and .Overloads. Generic methods. Method call using unbound methods. Calling explicitly implemented interface methods. (Put GetValue/SetValue here?) * Generics Generic types, continuing the previous section. * Miscellany Namespace visibility and name collision. * Other integrations Iterating .NET collections. Custom indexers just work. Overloaded operators just work. Just call the delegates. Oh you don't even need that, just += events. Enums and type conversion. * Exceptions How exceptions are translated to and fro. Throwing and catching from Python and .NET. * Inheritance and interfaces I don't know much about this topic. * Arrays Array is a generic type. Initialising with known values. Array.CreateInstance. Usual sequence operation on arrays. (e.g. slicing) Arrays are typed, but use Object if you don't care. Why list can't be passed to methods expecting array. (Maybe omit that.) Multidimensional arrays. Jagged arrays. * COM I don't know much about this topic. * Attributes Say something about this if it's implemented.