String reference mellem C# og VB
Jeg har en string i C#, som jeg vil putte med som en parameter til function i VB.I VB functionen, får jeg C#'s string over, med den tekst der nu er i den, og jeg kan også ændre indeholdet i den string.
Problemet er bare, at selv om jeg i VB tager den som: ByRef C#String As String, så ændringer af C#String i VB, ikke ses i C#, hvilket jeg vil mene at man burde kunne, da det er en ByRef.
Mit VB kode ligger i Modules til en excel fil som "myModule"
I dette modul, ligger så følgende kode:
____________________________________
Option Explicit
Public Function myFunc(ByRef ark As Worksheet, ByRef myString As String) As Boolean
'do something
myString = myString & " tekst fra VB"
myFunc = True
End Function
____________________________________
I C# har jeg så følgende kode, som kalder myFunc i VB:
//updated er selvfølgelig en boolean
//XLApp er en tråd til Excel app
String myString = "Tekst fra C#";
updated = (Boolean)XLApp.Run(myModule.myFunc,
ws, myString, Missing.Value, Missing.Value, Missing.Value, Missing.Value, Missing.Value, Missing.Value, Missing.Value, Missing.Value, Missing.Value, Missing.Value, Missing.Value, Missing.Value, Missing.Value, Missing.Value, Missing.Value, Missing.Value, Missing.Value, Missing.Value,
Missing.Value, Missing.Value, Missing.Value, Missing.Value, Missing.Value, Missing.Value, Missing.Value, Missing.Value, Missing.Value, Missing.Value);
____________________________________
Efter at myString ("Tekst fra C#") har været ovre i VB, og deri fået tilføjet (" tekst fra VB"), så ses denne tilføjelse ikke i C#.
Hvad gør jeg lige forkert?? :-(
PS. jeg VED at myString kommer over i VB, for jeg kan skrive indeholdet af den ud. Det er bare lige som om at det der ByRef kun virker den ene vej.... eller noget :-(
