InstanceDescriptor problem rendering Nullable<double> constructor parameters

N

Nathan Alden

I have a class like so:

public class MyClass
{
public MyClass(double? x, double? y)
{
}
}

I have created a type converter for this class that converts MyClass to an
InstanceDescriptor which renders a line of code like the following on a form
when x and y are null:

this.myComponent1.MyClassInstance = new MyClass(null, null);

The designer deserialization mechanism in Visual Studio is able to correctly
determine which constructor must be called on the MyClass class when
entering design mode.

However, if x and y are not null, and happen to have no decimal, the
following line of code is rendered:

this.myComponent1.MyClassInstance = new MyClass(2, 1);

This causes an exception when the form is designed with an error about a
constructor with Int32, Int32 signature not being found. It appears as
though there is no implicit conversion (for some reason) from Int32 to
Nullable<Double>.

So far I have not been able to find a way to cause the InstanceDescriptor to
render an explicit cast statement (double?) to ensure the constructor is
called successfully.

Has anyone experienced this problem before, and if so, how did you solve it?

Thanks.

-- Nathan
 
A

Alexander Malapheev[MCP]

Hi, Nathan

Maybe you can just add another one constructor?

public MyClass(int t1, int t2)
{
}
 
A

Alexander Malapheev[MCP]

Hi, Nathan

Maybe you can just add another one constructor?

public MyClass(int t1, int t2)
{
}
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Top