在c ++ builder中使用带__properties的条件运算符

时间:2017-12-12 13:57:36

标签: properties c++builder

将条件运算符(?:)与C ++构建器中的属性结合使用会显示一种非常奇怪的行为。

当使用属性值分配UnicodeString值时,它仍然是" NULL":

bigint

请参阅以下示例:

部首:

UnicodeString s2 = MyPropertyValue.IsEmpty() ? UnicodeString( "emptyValue" ) : MyPropertyValue;

Cpp文件:

class TForm1 : public TForm
{
    __published:
        TButton *Button1;
        void __fastcall Button1Click(TObject *Sender);
    private:
        UnicodeString FMyPropertyValue;

        void SetMyPropertyValue( UnicodeString AValue ) {
            FMyPropertyValue = AValue;
        }

        UnicodeString GetMyPropertyValue( void ) {
            return FMyPropertyValue;
        }
    public:
        __fastcall TForm1(TComponent* Owner);
        __property UnicodeString MyPropertyValue = { read=GetMyPropertyValue, write=SetMyPropertyValue };
};

当s1,s3和s4为" someValue"时,s2仍为" NULL"。

为什么?

0 个答案:

没有答案