I am trying to build a C /CLR form app
And in the code below
I am trying to get the length of the string of GetTb
Which is a string retrieved from a textbox Tb_Return
Tb_Return->Text = "This is a test String";
String^ GetTb = Tb_Return->Text;
int len = GetTb.Length();
Tb_Return->Text = GetTb;
In Line 3, Visual Studio keeps highlighting the GetTb variable with the error below
expression must have class type but it has type
And when I try to change the . into ->, the error message changes to below
expression preceding parentheses of apparent call must have have (pointer-to-) function type
How can I fix these errors?
CodePudding user response:
There are 2 issues:
GetTbis a handle to an object in c /cli.
In order to dereference it you must use the->operator (or*with.similarly to c pointers).System::String::Lengthis a property.
In order to access it you need to use its name without parentheses (()).
Therefore the correct way to access the Length property of GetTb is:
int len = GetTb->Length;
