コードタイプが単位の場合、関数の CodeText プロパティは完全なコンパイル単位のテキストを持っている必要があります。単位は、UserFunction 名前空間に Calculator クラスを持ち、さらに ISimpleFunction インタフェースも実装している必要があります。
Visual Basic コードの書き方
| Visual Basic |
コードのコピー
|
|---|---|
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# コードの書き方
| 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);
|
|