Let's assume I've the following C# class:
public class Test
{
public double X;
public double Y;
}
I want to use the above C# Test
class from IronPython and as well from CPython (using Pythonnet).
Using IronPython 2.7 I was able to generate an object and initializes the fields using object initialization, see the following Python code:
obj = Test(X = 1.0, Y = 2.0)
See as well the following question Object initialization in IronPython
Using CPython 3.9.7 and Pythonnet 3.01 the above code returns the following error:
TypeError: No method matches given arguments for Test..ctor: ()
As workaround I can use the following Python code:
obj = Test()
obj.X = 1.0
obj.Y = 2.0
But I would like to use object initialization.
CodePudding user response:
Not sure if I get your question, but try this:
Test test = New Test();
/* or */ var test = New Test();
/* then */ test.x = whatever;
CodePudding user response:
You can do this in two ways in C#:
- Object Initializer approach:
var obj = new Test { X = 1.0, Y = 2.0 };
- The constructor approach. For this approach you must add a constructor to the class:
Then you can create the object with:public class Test { public double X; public double Y; public Text( double x, double y) { X = x; Y = y; } }
var obj = new Test(1.0, 2.0);