私は古いVBプロジェクトで作業しており、C#に書き直しています。返品のない機能 - この機能はどのように機能しますか?
私は機能について知っているものに合わないいくつかの行があります。私はMSDNを読んでいる限り、私が理解している限り、関数はReturn
またはExit
でなければなりません。そうでなければ、データをByRef
に送ることができます。
この関数はこれらのいずれも持っていませんが、まだ何かをすることになっています。もしそうでなければ、プログラムはうまくいくとは思えません。
また、それ自体が呼び出しているようですが、オーバーロードがあります。しかし私は知らない、それは私にとってはあまりにも奇妙である。
機能自体:
Private Function f(ByVal numero As Double) As String
Dim intermedio As Double
intermedio = numero * Factor
If intermedio - Int(intermedio) = 0 Then
f = Format(intermedio, "0")
Else
f = Format(intermedio, "###0.0######")
End If
'f = Format(intermedio, "0.00000E+000")
f = Replace(f, ",", ".")
'f = Str(numero)
End Function
変動要因は、コードのどこかに定義され、それはですされています
double Factor = 1;
その関数の呼び出し:
For Y = 0 To MaxY - 1
X0 = X
X1 = X + 1
Y0 = Y
Y1 = Y + 1
Z00 = a(X0, Y0)
Z01 = a(X0, Y1)
Z10 = a(X1, Y0)
Z11 = a(X1, Y1)
Normal(X1 - X0, Y1 - Y0, Z11 - Z00, X1 - X0, 0, Z10 - Z00)
objWriter.WriteLine(" facet normal " & f(i) & " " & f(j) & " " & f(k))
objWriter.WriteLine(" outer loop")
objWriter.WriteLine(" vertex " & f(X) & " " & f(Y) & " " & f(a(X, Y)))
objWriter.WriteLine(" vertex " & f(X + 1) & " " & f(Y + 1) & " " & f(a(X + 1, Y + 1)))
objWriter.WriteLine(" vertex " & f(X + 1) & " " & f(Y) & " " & f(a(X + 1, Y)))
objWriter.WriteLine(" endloop")
objWriter.WriteLine(" endfacet")
Normal(0, Y1 - Y0, Z01 - Z00, X1 - X0, Y1 - Y0, Z11 - Z00)
objWriter.WriteLine(" facet normal " & f(i) & " " & f(j) & " " & f(k))
objWriter.WriteLine(" outer loop")
objWriter.WriteLine(" vertex " & f(X) & " " & f(Y) & " " & f(a(X, Y)))
objWriter.WriteLine(" vertex " & f(X) & " " & f(Y + 1) & " " & f(a(X, Y + 1)))
objWriter.WriteLine(" vertex " & f(X + 1) & " " & f(Y + 1) & " " & f(a(X + 1, Y + 1)))
objWriter.WriteLine(" endloop")
objWriter.WriteLine(" endfacet")
Next Y
関数(f)の名前を値で設定すると、関数はその値を返します。古いVB6残っていると思う – Steve