For Unit code types, the CodeText property of a function must contain the full compile unit text. The unit must include the class "Calculator" in the UserFunction namespace, and must implement the ISimpleFunction interface.
Dim code As String = _
"Namespace UserFunction" & vbNewLine & _
" Class Calculator" & vbNewLine & _
" Implements ISimpleFunction" & vbNewLine & _
" Public Function Calculate(x As Double) As Double _" & vbNewLine & _
" Implements ISimpleFunction.Calculate" & vbNewLine & _
" Dim x2 As Double = x*x" & vbNewLine & _
" if( x<0)" & vbNewLine & _
" return -x" & vbNewLine & _
" else" & vbNewLine & _
" return -0.5*x2" & vbNewLine & _
" End If" & vbNewLine & _
" End Function" & vbNewLine & _
" End Class" & vbNewLine & _
"End Namespace"
Dim yf As C1.Win.C1Chart.YFunction = New C1.Win.C1Chart.YFunction()
yf.CodeType = C1.Win.C1Chart.FunctionCodeTypeEnum.Unit
yf.CodeLanguage = C1.Win.C1Chart.FunctionCodeLanguageEnum.VB
yf.CodeText = code
yf.MinX = -5
yf.MaxX = 5
yf.LineStyle.Color = Color.Green
yf.LineStyle.Thickness = 3
C1Chart1.ChartGroups(0).ChartData.FunctionsList.Add(yf)
•C#
string code =
"namespace UserFunction" +
"{" +
" class Calculator : ISimpleFunction" +
" {" +
" public double Calculate(double x)" +
" {" +
" double x2 = x*x;" +
" if( x<0)" +
" return -x;" +
" else" +
" return -0.5*x2;" +
" }" +
" }" +
"}";
C1.Win.C1Chart.YFunction yf = new C1.Win.C1Chart.YFunction();
yf.CodeType = C1.Win.C1Chart.FunctionCodeTypeEnum.Unit;
yf.CodeText = code;
yf.MinX = -5;
yf.MaxX = 5;
yf.LineStyle.Color = Color.Green;
yf.LineStyle.Thickness = 2;
c1Chart1.ChartGroups[0].ChartData.FunctionsList.Add( yf);